我有一个小程序,可以将一些希伯来字母和一些数字写入一个用 JAVA 编写的文件中。当我从 Eclipse 运行程序时,希伯来语写得很好,但是如果我将它导出到一个可执行的 JAR 文件中并从那里运行它,希伯来语就会变成胡言乱语
我的代码:
if (content.length() > 0) {
FileWriter fileWriter = new FileWriter(path);
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
bufferedWriter.write(content);
bufferedWriter.close();
}
我还尝试使用 OutputStreamWriter 自己设置编码:
if (content.length() > 0) {
BufferedWriter bufferedWriter = new BufferedWriter
(new OutputStreamWriter(new FileOutputStream(path), "windows-1255"));
bufferedWriter.write(content);
bufferedWriter.close();
}
我试过的编码:
ISO-8859-8
视窗-1255
x-IBM856
IBM862
IBM424
UTF-8
当我从 eclipse 运行程序时,其中一些返回正确的希伯来语,但是当从 JAR 文件运行时,所有这些都将希伯来语转换为不同类型的乱码。我什至不确定代码本身的编码是问题还是解决方法。
我在 Windows 10 上使用批处理文件运行 JAR。我的 Java 版本信息:
java版本“10.0.1” 2018-04-17
Java(TM) SE 运行时环境 18.3(构建 10.0.1+10)
Java HotSpot(TM) 64 位服务器 VM 18.3(构建 10.0.1+10,混合模式)
使用 UTF-8 时的输出示例
希伯来文文件中的一行(由 eclipse 生成):
210001 188 13 04/09/1804/09/18 50.00 1 123456789 לירון קטלן הרא"ה 291 רמת גן 6013
来自乱码文件(从 JAR 生成)的同一行:
210001 188 13 04/09/1804/09/18 50.00 1 123456789 לירון קטלן הר�"ה 291 רמת גן 6013
不要介意额外的空格,它们应该在那里。
相关分类