java - 检测并更改编码

标签 java eclipse encoding

我有一个小的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/

相关文章:

java - 将 JPanel 与 WindowBuilder 重叠用于 eclipse

java - Eclipse Windows 查看问题

在 C 中将代码点转换为 wchar_t

android.util.LruCache.put 中的 java.lang.NullPointerException ( Android )

java - 递归java - 不同的是for循环不理解如何工作

java - 带有反向引用的简单 Java 正则表达式不起作用

java - 分开的数字和字母

java - 如何附加到 Eclipse 中的进程?

iOS 原生中文编码 QRCode 扫描器

java - 不理解有效 XML 字符集的正则表达式