gpt4 book ai didi

java - 特殊字符在 Java IDE 中显示正常,但在从 jar 文件启动的程序中不显示

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

我正在尝试用 Java 构建一个中文抽认卡程序来帮助自己学习中文。我正在使用 intelliJ IDEA 10。基本过程是我的程序将读取保存在本地计算机上的文件以生成抽认卡。该文件是使用java中的File类编写的。在记事本中打开时,它会正确显示所有字符。

当我在 IDE 中运行它时,我能够显示汉字和拼音字符(基本上是上面带有重音符号的元音)。但是,当我构建一个 jar 文件并从那里启动程序时,它不再显示特殊字符并最终显示一堆奇怪的符号。

关于为什么会这样以及如何解决它有什么想法吗?

最佳答案

IntelliJ 不使用平台默认编码,它 autodetects它基于源文件的编码。在 IntelliJ 外部运行代码时,您需要确保在读取/写入文件时明确指定正确的编码。您可以通过将其指定为 InputStreamReader 的第二个构造函数参数来做到这一点和 OutputStreamWriter分别。

File file = new File("/foo.txt");
Reader reader = new InputStreamReader(new FileInputStream(file), "UTF-8");
// ...

Writer writer = new OutputStreamWriter(new FileOutputStream(file), "UTF-8");
// ...

此外,您还需要确保查看器也支持这些字体。例如 Windows 命令控制台,不支持中文。您需要创建一个 Swing 应用程序来显示结果。

关于java - 特殊字符在 Java IDE 中显示正常,但在从 jar 文件启动的程序中不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6244516/

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