2016-08-23 5 views
1

MySQLからデータを取得するTomcat 8があります。 MySQLの行はエンコードされています(ロシア語のテキストのように)。サーバーをデバッグすると、選択した行は良好なエンコーディングになります。ただし、返されたJSONには無効な文字が含まれています。 私はserver.xmlをチェックし、私が持っている:私はそこにURIEncoding="UTF-8"を持ってTomcat 8での不正なエンコーディング

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" URIEncoding="UTF-8" redirectPort="8443" /> 

お知らせ。

他に何ができますか?

+0

エンコード用にサーブレットフィルタを設定しましたか? 'org.springframework.web.filter.CharacterEncodingFilter'の使用を検討してください。 –

+0

どうすれば使用できますか? – Ran

+1

これを確認してください:http://stackoverflow.com/questions/13504732/how-to-use-org-springframework-web-filter-characterencodingfilter-to-correct-cha –

答えて

0

URIエンコーディングは、私が知る限りURIにのみ適用されます。あなたが戻ってきたもののエンコーディングには影響しません。 "Content-type:application/json; charset = utf-8"のような適切な応答ヘッダーを設定する必要があります。ここで

は、要求のためだが、それはあなたが必要なもののアイデアを与えるかもしれないが、私が働いている春のブートアプリの抜粋です:

private RestTemplate rest = new TestRestTemplate() {{ getMessageConverters().add(0, new StringHttpMessageConverter(Charset.forName("UTF-8"))); }}; 
private HttpHeaders requestHeaders = new HttpHeaders() {{ setContentType(MediaType.APPLICATION_JSON); }}; 

あなたは多分私達があなたのコードを示すことができた場合あなたをより良く助けることができます。

+0

私は控えめではありません、どうすればgetMessageConvertersを使用できますか?単にrequestHeadersを使用しても役に立ちません。 適切な応答ヘッダーを設定するにはどうすればよいですか? 私のコードはとてもシンプルです。返信陳述まですべてが良いです。 – Ran

関連する問題