我有一个小的Java应用程序。我在日食中发展它。它从xml文件中获取文本并将其上传到网站。在eclipse中,everithing工作得很好。但是当我将我的应用程序编译为可执行jar并从cmd启动它时会出现一个大麻烦 - 所有非拉丁字符都会转换为不可读的符号。
我试图放<?xml version="1.0" encoding="windows-1251" ?>
或<?xml version="1.0" encoding="utf-8" ?>
,但它没有帮助。
我该如何解决这个问题?
任何有用的帮助!
答案 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)。