gpt4 book ai didi

android - 转换为 UTF-8

转载 作者:行者123 更新时间:2023-11-29 19:20:26 26 4
gpt4 key购买 nike

我正在使用以下方法从 HTTP 服务器读取 txt 文件。

public static String getHtmlFromUrl(String strUrl, String referer, boolean isMobile) {
URL url = null;
BufferedReader reader = null;
StringBuilder sb = null;
String returnValue = "";

try {
url = new URL(strUrl);
URLConnection con = url.openConnection();

// force server to mimic specific Browser
con.setRequestProperty("User-Agent", userAgent);
if(isMobile)
con.setRequestProperty("User-Agent", userAgentMobile);

con.setRequestProperty("Referer", referer);

con.setReadTimeout(15000);
con.connect();

reader = new BufferedReader(new InputStreamReader(con.getInputStream()));
sb = new StringBuilder();

String line = null;
while((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
returnValue = sb.toString();
} catch(Exception e) {
e.printStackTrace();
} finally {
if(reader != null) {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return returnValue;
}

我没有直接访问这个文件的权限(所以我不能改变它的方式)。如果我在浏览器中调用 URL,它会使用 ISO-8859 或 Windows-1252 编码正确显示。

Android 似乎默认将其解释为 utf-8。所以我需要一种方法将 returnValueStringBuffer sb 从现有的 ISO-8859 编码转换为 utf-8。

我该怎么做?

最佳答案

你必须更新这一行:

reader = new BufferedReader(new InputStreamReader(con.getInputStream()));

需要:

reader = new BufferedReader(new InputStreamReader(url.getInputStream(), "ISO_8859_1"));

或者从 Java 7 开始:

reader = new BufferedReader(new InputStreamReader(url.getInputStream(), StandardCharsets.ISO_8859_1));

更新:ISO_8859_1 代替 UTF-8

关于android - 转换为 UTF-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42641863/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com