我有一个小的java应用程序。我在eclipse中开发它。它从 xml 文件中获取文本并将其上传到网站。在 eclipse 中一切正常。但是当我将应用程序编译为可执行 jar 并从 cmd 启动它时,出现了一个大麻烦 - 所有非拉丁字符都会转换为不可读的符号。
我尝试输入 <?xml version="1.0" encoding="windows-1251" ?>
或<?xml version="1.0" encoding="utf-8" ?>
但这没有帮助。
如何解决这个问题?
任何帮助appriced!
最佳答案
您可以尝试在输出编写器的构造函数中显式指定 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
都必须通过其文本名称(即“UTF-8”)来指定,而不是通过相应类的直接实例化来指定。)
因此,您的问题的一个可能的解释是,由于未明确给出字符集,系统会尝试回退到操作系统的默认编码(可能不是 UTF-8)。
关于java - 检测并更改编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25596514/