jhl*_*u87 3 java jar intellij-idea character-encoding
我正在尝试用 Java 构建一个中文抽认卡程序来帮助自己学习中文。我正在使用intelliJ IDEA 10。基本过程是我的程序将读取保存在本地机器上的文件以生成抽认卡。该文件是使用 java 中的 File 类编写的。在记事本中打开时,它会正确显示所有字符。
当我在 IDE 中运行它时,我能够显示汉字和拼音字符(基本上是带有重音符号的元音)。但是,当我构建一个 jar 文件并从那里启动程序时,它不能再显示特殊字符并最终显示一堆奇怪的符号。
关于为什么会这样以及如何解决它的任何想法?
IntelliJ 不使用平台默认编码,它根据源文件的编码自动检测它。在 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");
// ...
Run Code Online (Sandbox Code Playgroud)
此外,您还需要确保查看器也支持这些字体。例如,Windows 命令控制台不支持中文。您需要创建一个 Swing 应用程序来显示结果。