2013-02-19 1 views
7

Я пробовал много вещей и не мог понять, почему я получаю? вместо этого акцентированный характер.Получение вопросительного знака вместо буквы с акцентом с использованием пружины 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 

, как это исправить?

Благодаря

+0

Не могли бы вы получить правильные символы, за исключением того, что при печати на консоли консоль не поддерживает utf-8? Попробуйте это: http://stackoverflow.com/questions/2038733/how-do-i-change-a-shell-scripts-character-encoding – gerrytan

+0

Это сообщение или запрос? Можете ли вы добавить фактический метод с фактическими аннотациями? –

+0

Это запрос на отправку, и это код: RequestMapping (value = "/ userSignup", method = RequestMethod.POST) \t public String userSignup (\t RequestParam ("name") Строковое имя, RequestParam ("email") String email, RequestParam ("birthdayDay") String birthdayDay, RequestParam ("birthdayMonth") String birthdayMonth, RequestParam ("birthdayYear") String birthdayYear, RequestParam («sex») Строковый пол, RequestParam («пароль») Строковый пароль, RequestParam («passwordConfirmation») Строковый парольConfirmation, HttpServletResponse response, ModelMap model) { –

ответ

8

я мог бы решить эту проблему, добавив следующий код на мой мастер-шаблона:

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

ударением письмо и другие языки, как китайский и арабский хитры.
Я думаю, вы не видели последнюю из этой проблемы.
Вы должны убедиться, что ваш текст правильно закодирован в любой ссылке в цепочке.

E.g.

  • база данных -> Java -> response-> браузер файл
  • свойства -> jav-> response-> браузер
  • запрос (параметр/форма) -> response-> браузер
  • Java - > logger-> Приставки

Я предлагаю следующее этого большого ответа How to get UTF-8 working in Java webapps?

чтобы настроить его SPRI Используйте символ 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> 

Убедитесь, что ваши файлы свойств закодированы правильно с использованием native2ascii Java.
Или лучше, если вы используете затмение я рекомендую Property Editor plugin.
Когда-нибудь сторонние рамки перерыв что-то и вы должны сделать «волшебный»

new String(yourstring, "UTF8") 

Для получения дополнительной информации см here

Обратите внимание, что некоторые рассматривают резольверы необходимо также определить кодировку.

+0

Я проверю это. Спасибо, Хаим! –

+0

Еще одна потенциальная проблема заключается в кодировании приложения log4j. Добавьте следующий файл log4j.properties log4j.appender.emsSpringLogFile.encoding = UTF-8 –