Как настроить UTF-8 на скорости? - PullRequest
1 голос
/ 18 октября 2011

Используя Java, Servlets, MySQL, Tomcat и Velocity, были предприняты следующие шаги:

  • speed.properties:
    • input.encoding = UTF-8 * +1006 *
    • output.encoding = UTF-8
  • server.xml
    • URIEncoding = UTF-8
  • <html><head> Charset
    • meta http-equ = "Тип контента" content = "text / html; CHARSET = UTF-8"
  • свойства затмения, свойства проекта, кодировка файла и редактора
    • установить все, что относится к UTF-8
  • JDBC-соединение:
    • db.url = JDBC: MySQL: //: / useEncoding = истина & characterEncoding = UTF-8
  • код Java / сервлета:
    • request.setCharacterEncoding (UTF-8)

Все вышеперечисленное не сработало. Пока следующий код не был сделан:

private String getParameter(String key) {
    String param = request.getParameter(key);
        if (Util.isNotEmpty(param)) {
            try {
                return new String(param.getBytes("8859_1"), "utf-8");
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
            return param;
        }
    return null;
}

Вышеуказанное означает, что request.setCharacterEncoding не имел эффекта (getCharacterEncoding() возвращает UTF-8); зная, что оболочка запроса обернута в ThreadLocal объект.

Как это вызвано и как я могу это решить?

Ответы [ 2 ]

0 голосов
/ 05 ноября 2011

Вы получите параметры, закодированные в кодировке, которую браузер находит в порядке.Хотя проблема может быть в странной конфигурации браузера или заголовке xmlкоторый мог бы понадобиться, если бы это был когда-то XHTML с кодировкой iso.

0 голосов
/ 20 октября 2011

Чтобы правильно интерпретировать параметры, tomcat должен проанализировать URL-адрес как UTF-8.Установите это в свойствах коннектора server.xml, например, с помощью:

<Connector port="8080"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               debug="0" connectionTimeout="20000" 
               disableUploadTimeout="true" 
               URIEncoding="UTF-8"/>
...