意見反應

取值得到亂碼的問題

2018/10/25 18:06 by 發問者

想請問關於直接拿範例程式中的JAVA範例執行後回傳的中文值都會是亂碼的解決方法.
回覆人 回覆內容

發問者

2018/10/26 23:23

更新後續
我發現需要在code裡面加上System.setProperty("file.encoding", "UTF-8");
然後如果要將抓到的資料丟進txt
編譯需要加上一些參數javac -encoding utf-8 *.java
執行也是java -Dfile.encoding=utf-8 *

我是亂試發現的 說不定有更快的方法 歡迎一起討論

MUO

2019/11/15 15:22

我遇到中文亂碼的原因是因為沒有解壓縮,加入判斷如下:

URL url=new URL(apiUrl);
if("https".equalsIgnoreCase(url.getProtocol())){
SslUtils.ignoreSsl();
}
connection=(HttpURLConnection)url.openConnection();
connection.setRequestMethod("GET");
connection.setRequestProperty("Authorization", sAuth);
connection.setRequestProperty("x-date", xdate);
connection.setRequestProperty("Accept-Encoding", "gzip");
connection.setDoInput(true);
connection.setDoOutput(true);

Reader reader = null;
if ("gzip".equals(connection.getContentEncoding())) {
reader = new InputStreamReader(new GZIPInputStream(connection.getInputStream()), "UTF-8");
}
else {
reader = new InputStreamReader(connection.getInputStream(), "UTF-8");
}

BufferedReader in = new BufferedReader(reader);
//讀取回傳資料
String line="";
String response="";
while ((line = in.readLine()) != null) {
response+=(line+"\n");
}
result = response;