gpt4 book ai didi

java - Jar 资源中的 Unicode

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:04:43 27 4
gpt4 key购买 nike

我在 jar 中有一个 Unicode(没有 BOM 的 UTF-8)文本文件,它作为资源加载。

URL resource = MyClass.class.getResource("datafile.csv");
InputStream stream = resource.openStream();
BufferedReader reader = new BufferedReader(
new InputStreamReader(stream, Charset.forName("UTF-8")));

这在 Windows 上工作正常,但在 Linux 上它似乎没有正确读取文件 - 重音字符被破坏了。我知道不同的机器可以有不同的默认字符集,但我给了它正确的字符集。为什么不使用它?

最佳答案

阅读部分看起来是正确的,我一直在 Linux 上使用它。

我怀疑您在将文本导出到网页时在某处使用了默认编码。由于 Linux 和 Windows 上的默认编码不同,您会看到不同的结果。

例如,如果您在 servlet 中执行此类操作,则使用默认编码,

PrintWriter out = response.getWriter();
out.println(text);

你需要像这样专门用UTF-8写,

 response.setContentType("text/html; charset=UTF-8");
out = new PrintWriter(
new OutputStreamWriter(response.getOutputStream(), "UTF-8"), true);
out.println(text);

关于java - Jar 资源中的 Unicode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1320058/

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