2013-02-19 10 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パブリックString userSignup(\t)RequestParam( "name")ストリングemail、RequestParam( "birthdayDay")ストリングbirthdayDay、RequestParam( "birthdayMonth")ストリングbirthdayMonth、RequestParam( "birthdayYear" )文字列birthdayYear、RequestParam( "sex")文字列sex、RequestParam( "password")文字列パスワード、RequestParam( "passwordConfirmation")文字列passwordConfirmation、HttpServletResponseレスポンス、ModelMapモデル){ –

答えて

8

私は私のマスターテンプレートに次のコードを追加することで、この問題を解決することができます:

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

アクセント文字とマンダリン語やアラビア語などの他の言語をトリッキーです。
私はあなたがこの問題の最後を見ていないと思います。
チェーン内のどのリンクにもテキストが正しくエンコードされていることを確認する必要があります。

など。

  • データベース - >ジャワ - >対応 - >ブラウザ
  • プロパティファイル - > jav->対応 - >ブラウザ
  • 要求(PARAM /フォーム) - >対応 - >ブラウザ
  • のJava - 私はSPRIにそれを調整するには、この偉大な答え How to get UTF-8 working in Java webapps?

    を以下の示唆> logger->コンソール

Springの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> 

あなたが国際化を使用している場合、例えば、あなたの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を使用して正しくエンコードされていることを確認してください。
それとも、日食使用私はProperty Editor plugin.
いつか、サードパーティ製のフレームワークブレーク何かをお勧めしますし、あなたがhere

ノートを参照してください詳細については

new String(yourstring, "UTF8") 

「魔法」を実行する必要がある場合は、より良いもの、いくつかのビューリゾルバエンコーディングも定義する必要があります。

+0

これをチェックします。ありがとうございます。 –

+0

もう一つの潜在的な問題は、log4jアペンダのエンコーディングです。 以下をlog4j.propertiesファイルに追加します。log4j.appender.emsSpringLogFile.encoding = UTF-8 –

関連する問題