2017-11-10 22 views
0

JSONレスポンスでローカライズされたエラーメッセージを返し、ログに出力します。私がこれをするとき、どちらも奇妙で乱されたキャラクターを見せます。英語以外の文字を正しく表示するにはどうすればメッセージをエンコードできますか?REST/JSONレスポンスとprintStackTraceで正しくアクセント記号をエンコードするには?

"messages_fr.properties"に保存されているように、メッセージ:

それはJSONレスポンスに表示されますどのように
exceptions.generalMessage=Un problème est survenu lors de la gestion de votre demande. 

"message": "Un problème est survenu lors de la gestion de votre demande." 

それはスタックトレースで、上記と同じ表示されます。

+0

のように、デフォルトで動作するものとしますmessages_fr 'でその文字の実際のUTF-8表現を格納しようとしたことがあり.properties'?それはスペイン語でメッセージのために私のために働く; 'Un problema degestión'のように...' Un problema de gesti \ u00f3n'として保存されています。 –

+0

@ɐuıɥɔɐɯUTF-8で保存するにはどうすればよいですか? –

+0

このように出てくる: '私はあなたの要求を満たすために、私たちの手を引いてください。私はそれをUTF-8に保存しました: 'Un probl \ xC3 \ xA8me est survenuors of la vestion de votre demande.' –

答えて

0

どのようにJsonレスポンスを作成していますか?ジャージーサーバーですか?

  1. サーバーの場合は、@Producesタグにエンコードを追加します。

    @Produces(MediaType.APPLICATION_JSON + ";charset=utf-8")

  2. それはジャクソンObjectMapperだ場合、それはこの

    Map m = new HashMap(); 
        m.put("error", "Un problème est survenu lors de la gestion de votre demande."); 
        com.fasterxml.jackson.databind.ObjectMapper mapper = new com.fasterxml.jackson.databind.ObjectMapper(); 
        System.out.println(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(m)); 
    
関連する問題