На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Следующие правила действуют в данном разделе в дополнение к общим Правилам Форума
1. Здесь обсуждается Java, а не JavaScript! Огромная просьба, по вопросам, связанным с JavaScript, SSI и им подобным обращаться в раздел WWW Masters или, на крайний случай, в Многошум.
2. В случае, если у вас возникают сомнения, в каком разделе следует задать свой вопрос, помещайте его в корневую ветку форума Java. В случае необходимости, он будет перемещен модераторами (с сохранением ссылки в корневом разделе).

3. Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.
4. Не рекомендуется создавать несколько несвязанных вопросов в одной теме. Пожалуйста, создавайте по одной теме на вопрос.
Модераторы: dark_barker, wind
  
> Struts -> encoding String. , Поддержка правосторонних языков.
    Для набора странички используется tiles-defs
    Я грубо выдерну и соеденю те части которые разделены tiles-defs. надеюсь максимально достоверно представить всю картину бардака :)

    1. Кодировка БД - ISO-8859-8 (Поменять на UTF не возможно)
    2. Поддержка правосторонних языков - (иврит,арабский)
    3. Получаю из БД и отображаю на странице ивритские символы правильно.
    4. При обратном процессе (insert,update) в методе set наблюдается набор кракозябр.
    5. Не могу понять в какой кодировке стратс передает этот стринг.
    6. Таг <html:form - не поддерживает установку кодировки.
    7. Пробовал всякие "извращенности" такие как:
    (код приведен просто как пример. Имелись различные варианты кодировок и прочих игр)


    ExpandedWrap disabled
            
             Charset charset = Charset.forName( "" );
             byte[] utf8 = value.getBytes("Cp1252");
             ByteBuffer byteBuffer = ByteBuffer.wrap( utf8 );
             CharsetDecoder decoder = charset.newDecoder();
             CharBuffer charBuffer = decoder.decode(byteBuffer );
             value = charBuffer.toString();
       
             Charset charsetIso = Charset.forName( "ISO-8859-8" );
             CharsetEncoder encoder = charsetIso.newEncoder();
             byteBuffer = encoder.encode(charBuffer);
             value = byteBuffer.asCharBuffer().toString();

    В дебагере простматривал значение value - крокозябры :(

    JSP:
    ExpandedWrap disabled
      .....
      <%@ page  language="java"  contentType="text/html; charset=UTF-8"  pageEncoding="UTF-8"%>
      ....
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      ......
      <html:form styleId="popupForm" action="<%=action%>" method="POST">
      .......
        <logic:iterate id="item" name="gridPopupForm" property="data" indexId="counter">
      ....
         <html:text property='<%="data["+counter+"].value"%>' onfocus="skipcycle=true"    onblur="skipcycle=false"/>
      .....
      </html:form>


    Java:
    Тут обязян быть метод
    public void setValue(String value){
    .....
    }

    Вот такая вот проблема.
    Заранее всем спасибо.
    1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
    0 пользователей:


    Рейтинг@Mail.ru
    [ Script execution time: 0,0173 ]   [ 14 queries used ]   [ Generated: 20.05.24, 00:24 GMT ]