我写了一个从程序外部调用Unicode的程序。我使用的是Windows XP和Eclipse。当我在IDE中运行该程序时,它会显示Unicode,但当我将其导出为.jar文件时,我无法读取Unicode并显示为框。
我跟着these instructions在我的计算机上安装了Unicode。我按照链接将the Telugu fonts安装到我的系统。
任何人都可以告诉我如何在Jar文件中获取Unicode? p>
答案 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。