如何在Jar文件中获取Unicode

时间:2013-07-04 10:00:32

标签: java unicode jar

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

我跟着these instructions在我的计算机上安装了Unicode。我按照链接将the Telugu fonts安装到我的系统。

任何人都可以告诉我如何在Jar文件中获取Unicode?

2 个答案:

答案 0 :(得分:2)

虽然没有直接回答这个问题,但这里有一个关于如何从文本文件中正确读/写的小方法,以OS依赖的方式。

首先要知道的是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,然后OutputStreamWriter打开OutputStream

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

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

答案 1 :(得分:0)

您已经完成了代码(我没有按照链接进行操作),但您可以将代码与How to import a font进行比较 - registerFont 至关重要。

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