Получение вопросительного знака вместо акцентированного письма с помощью spring MVC 3
я попробовал много вещей, и не мог понять, почему я получаю ? вместо акцентированного характера.
Я использую на своем html:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
и мой контроллер имеет следующий код
@RequestParam ("name") String name
name = name.trim();
system.out.println(name);
//response t?ata
//expected tábata
как это исправить?
спасибо
2 ответов
Я могу исправить эту проблему, добавив следующий код в мой шаблон:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
акцентированные буквы и другие языки, такие как мандарин и арабский, сложны.
Я думаю, вы не видели последний из этого вопроса.
Вы должны убедиться, что ваш текст правильно закодирован в любой ссылке в цепочке.
Э. Г.
- база данных - >java - >ответ - >браузер
- файл свойств - >jav - > ответ - >браузер
- запрос (param / форма) - >ответ - > браузер
- java - > регистратор -> консоль
Я предлагаю следовать этому замечательному ответу как заставить UTF-8 работать в Java webapps?
чтобы настроить его на весну, используйте spring's CharacterEncodingFilter.
<filter>
<filter-name>encodingFilter</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>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
Если вы используете i18n, обязательно определите кодировку по умолчанию для вашего ResourceBundleMessageSource, например
<bean id="messageSource"
class="org.springframework.context.support.ReloadableResourceBundleMessageSource"
>
<property name="basename" value="classpath:messages"/>
<property name="defaultEncoding" value="UTF-8"/>
<property name="useCodeAsDefaultMessage" value="false"/>
</bean>
убедитесь, что ваши файлы свойств правильно закодированы с помощью Java native2ascii.
Или лучше, если вы используете eclipse I рекомендую плагин редактора свойств.
Когда-нибудь сторонние рамки сломают что-то, и вам нужно сделать "волшебный"
new String(yourstring, "UTF8")
для получения дополнительной информации см. здесь
обратите внимание, что некоторые распознаватели представлений также должны определять кодировку.