java - 检测并更改编码

时间:2014-08-31 21:36:14

标签: java eclipse encoding

我有一个小的Java应用程序。我在日食中发展它。它从xml文件中获取文本并将其上传到网站。在eclipse中,everithing工作得很好。但是当我将我的应用程序编译为可执行jar并从cmd启动它时会出现一个大麻烦 - 所有非拉丁字符都会转换为不可读的符号。

我试图放<?xml version="1.0" encoding="windows-1251" ?><?xml version="1.0" encoding="utf-8" ?>,但它没有帮助。

我该如何解决这个问题?

任何有用的帮助!

1 个答案:

答案 0 :(得分:0)

您可以尝试在输出编写器的构造函数中明确指定UTF-8 Charset(或任何其他supported charset)。

例如,使用PrintWriter类输出数据时:

Writer writer = new PrintWriter("myfile.txt", "UTF-8");
writer.write("Hällo Wörld!");
writer.close();

使用OutputStreamWriter类时的等效示例:

Writer writer = new OutputStreamWriter(System.out, "UTF-8");
writer.write("Hällo Wörld!");
writer.close();

(请注意,在这两种情况下,Charset必须通过其文本名称(即&#34; UTF-8&#34;)来指定,而不是通过直接实例化相应的类。)

因此,对您的问题的可能解释是,由于未明确给出字符集,系统会尝试回退到您的操作系统的默认编码(可能不是UTF-8)。