LINUX.ORG.RU

Русский в Tomcat-3.2


0

0

Проблемс в том что когда ставлю чарсет через setContentType("text/html; charset=koi8-r") то вместо кирилицы ???? Как быть господа?

anonymous

Указывай content-type в заголовке генерируемого html

RSI
()

Не поможет я думаю. Я на эти грабли год назад натыкался. Это глюк в томкете. Пофиксил для себя. Он при создании юникодной строки когда ее из реквеста доставать создает ее с умолчательной кодировкой, то есть ISO8859-1.

  public static String translateString(String string, String encoding) {
    if(string == null || string.length() == 0)
      return string;
    char ca[] = string.toCharArray();
    byte ba[] = new byte[ca.length];
    for(int i = 0; i < ca.length; i++)
      ba[i] = (byte)ca[i];

    String translatedString;
    try {
      if(encoding == null)
        translatedString = new String(ba); else
          translatedString = new String(ba, encoding);
    } catch(Exception e) {
      translatedString = string;
    }
    return translatedString;
  }

Можешь воспользоваться этой функцией для перекодировки. На вход даешь строку полученую у HttpServletRequest - a таким способом:

String lastname = request.getParameter("lastname");

А второй параметр - кодировка из того же реквеста. То есть получится

String translated = translateString(lastname, request.getCharacterEncoding())

Banshee
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.