为了账号安全,请及时绑定邮箱和手机立即绑定

从导出的 jar 运行时,将希伯来语写入文件变成乱码

从导出的 jar 运行时,将希伯来语写入文件变成乱码

沧海一幻觉 2021-09-03 10:21:07
我有一个小程序,可以将一些希伯来字母和一些数字写入一个用 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视窗-1255x-IBM856IBM862IBM424UTF-8当我从 eclipse 运行程序时,其中一些返回正确的希伯来语,但是当从 JAR 文件运行时,所有这些都将希伯来语转换为不同类型的乱码。我什至不确定代码本身的编码是问题还是解决方法。我在 Windows 10 上使用批处理文件运行 JAR。我的 Java 版本信息:java版本“10.0.1” 2018-04-17Java(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不要介意额外的空格,它们应该在那里。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 197 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信