gpt4 book ai didi

java - 在导出的 JAR 中进行编码

转载 作者:行者123 更新时间:2023-11-30 04:38:14 26 4
gpt4 key购买 nike

我在 Java 编码方面遇到问题。我在 eclipse 中设置了编码 UTF-8。当我从 Eclipse 运行我的应用程序时,一切正常,但是当我导出到 jar 并通过双击运行它时,我有???人物。当我从命令行运行时: java -jar app.jar 一切正常。问题出在从其他站点下载的数据(该站点是 utf8 编码)。解决办法是什么?

编辑:在所有平台上,当我从命令行运行时,defaultEncoding() 是 UTF-8。但是当我双击运行时:Mac:US-ASCIIWindows:windows-1250

我已经写了编码方法,但它仍然不起作用:

public String getPageContent(String url) throws MalformedURLException, IOException
{
URL urlReader;
InputStream response = null;
BufferedReader reader;
String pageContent = "";
urlReader = new URL(url);
response = urlReader.openStream();
reader = new BufferedReader(new InputStreamReader(response));


for (String line; (line = reader.readLine()) != null;) {
pageContent += this.encode(line, "UTF-8");

}
reader.close();
return pageContent;
}
public String encode(String s, String charset)
{
try {
byte[] b = s.getBytes(charset);
s = new String(b, charset);
return s;
} catch (UnsupportedEncodingException e1) {


// TODO Auto-generated catch block
e1.printStackTrace();
}
return s;

}

最佳答案

构造InputStreamReader时需要指定UTF-8字符集。

reader = new BufferedReader(new InputStreamReader(response, "UTF-8"));

您根本不应该在收到字符串后尝试对其进行重新编码。

关于java - 在导出的 JAR 中进行编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12920039/

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