我编写了一个从程序外部调用 Unicode 的程序。我使用的是 Windows XP 和 Eclipse。当我在 IDE 中运行该程序时,它显示 Unicode,但是当我将其导出为 .jar 文件时,我无法读取 Unicode,它显示为方框。
我跟着这些说明 http://telugu.indiatyping.com/index.php/fonts-installation-instructions在我的电脑上安装 Unicode。我按照链接进行安装泰卢固语字体 http://prajakala.org/mag/help/Enable_Gautami_Telugu_Typing_in_Unicode-120706.pdf到我的系统。
谁能告诉我如何在 Jar 文件中获取 Unicode?
虽然没有直接回答问题,但这里有一个关于如何以依赖于操作系统的方式从文本文件正确读取/写入的小指南。
首先要知道的是 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()
both中的流/读取器/写入器finally
堵塞。提示:如果你不使用Java 7,请使用Guava 14.0+,使用Closer http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/io/Closer.html。这是处理多个 I/O 资源并确保正确处理它们的最安全方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)