簡體   English   中英

從服務器收到的字符串將特殊字符顯示為“?”

[英]String received from the server displays special characters as “?”

我有一個servlet,它從雲sql獲取一些數據,創建一個java對象,將其轉換為json並將其附加到響應編寫器。

問題在於此數據可能包含帶有特殊字符(例如“ç”和“ã”)的字符串。

Servlet對請求進行身份驗證,然后執行以下操作:

resp.getWriter().append(new Gson().toJson(new MyDataType(resultset)));
resp.setContentType("application/json");

我也嘗試將響應編碼設置為“ utf-8”,

<property name="file.encoding" value="UTF-8" />
<property name="DEFAULT_ENCODING" value="UTF-8" />

在appengine-web.xml文件的系統屬性下,但沒有任何效果。

客戶端中的代碼如下:

URL u = new URL(myurl);
HttpURLConnection connection = (HttpURLConnection) u.openConnection();
InputStream is = connection.getInputStream();
InputStreamReader in = new InputStreamReader(is, "utf-8");
MyDataType l = new Gson().fromJson(in, MyDataType.class);

我該怎么做才能正確顯示字符串?

將服務器代碼更改為

resp.setContentType("application/json");
resp.setCharacterEncoding("UTF-8");
resp.getWriter().append(new Gson().toJson(new MyDataType(rs3)));

解決了這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM