0

我编写了一个从程序外部调用 Unicode 的程序。我正在使用 Windows XP 和 Eclipse。当我在 IDE 中运行该程序时,它会显示 Unicode,但是当我将其导出为 .jar 文件时,我无法读取 Unicode 并且它显示为框。

我按照这些说明在我的计算机中安装了 Unicode。我按照链接将泰卢固字体安装到我的系统中。

谁能告诉我如何在 Jar 文件中获取 Unicode?

4

2 回答 2

2

虽然没有直接回答这个问题,但这里有一个关于如何以操作系统相关的方式正确读取/写入文本文件的小方法。

首先要知道的是 JVM 有一个file.encoding属性。它定义了用于所有文件读/写操作的默认编码,所有阅读器在未指定编码时使用。

因此,您不想使用默认构造函数,而是每次都定义编码。在 Java 中,“体现”编码的类是Charset. 如果你想要 UTF-8,你将使用:

  • StandardCharsets.UTF_8(Java 7+),
  • Charset.forName("UTF-8")(Java 6-),
  • Charsets.UTF_8(如果你使用番石榴)。

为了正确读取文件,打开InputStream该文件,然后打开InputStreamReader该文件InputStream(在下面的代码示例中,UTF8是从上述方法之一获得的 UTF-8 字符集):

final InputStream in = new FileInputStream(...);
final Reader reader = new InputStreamReader(in, UTF8);

为了正确写入文件,打开OutputStream它,然后打开OutputStreamWriterOutputStream

final OutputStream out = new FileOutputStream(...);
final Writer writer = new OutputStreamWriter(out, UTF8);

而且,当然,不要忘记将.close() 两个流/读取器/写入器放在一个finally块中。提示:如果您不使用 Java 7,请使用 Guava 14.0+,请使用Closer. 这是处理多个 I/O 资源并确保正确处理它们的最安全方法。

于 2013-07-05T06:18:41.803 回答
0

您已经编写了代码(我没有关注链接),但您可以将代码与如何导入字体进行比较- registerFont至关重要。

同样在 jar 文件中,所有路径都区分大小写。您可以使用 7zip 或 WinZip 检查 jar。

于 2013-07-04T12:02:44.833 回答