Проблемы с кодировкой символов со специальными символами - PullRequest
0 голосов
/ 24 апреля 2010

Здравствуйте, у меня есть jsp с HTML-формой.

Я установил тип контента следующим образом:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1" %>

Когда я отправляю специальные символы, такие как é í ó ú, они правильно сохраняются в базе данных. Моя таблица кодировки - UTF-8.

Я хочу изменить iso-8859 на utf-8, чтобы стандартизировать мое приложение и принимать больше специальных символов:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>

но когда я изменяю его на utf-8, специальные символы á í í ó ’не сохраняются правильно в базе данных. Когда я пытаюсь сохранить файл, он сохраняется как файл 1011 *.

На стороне сервера я использую Spring MVC. Я получаю значение текстового поля следующим образом:

String strField = ServletRequestUtils.getStringParameter(request,
                    "field");

1 Ответ

4 голосов
/ 24 апреля 2010

Если ваши страницы не ISO-8859-1, вам нужно объявить CharacterEncodingFilter в web.xml:

<filter>
    <filter-name>charsetFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
</filter>

<filter-mapping>
    <filter-name>charsetFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...