2016-08-23 43 views
1

我有一個從MySQL獲取數據的Tomcat 8。 MySQL中的行編碼良好(如俄文中的文本)。如果我調試服務器,選定的行編碼很好。但是,返回的JSON有不好的字符。 我檢查我的server.xml,我有:錯誤的編碼與Tomcat 8

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

請注意,我在那裏有URIEncoding="UTF-8"

我還能做什麼?

+0

您是否配置過任何用於編碼的servlet過濾器?考慮使用'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