我有一个使用 Netbeans 开发的 Java 程序。我更改了 Netbeans 上的设置,以便它能够理解 UTF-8。
但是,如果我清理并构建我的程序并将其与我的 Windows 系统一起使用,文本编码会发生变化,并且诸如“ü”、“ä”和“ö”之类的字母将不再正确显示和使用。
如何与我的操作系统通信并告诉他使用 UTF-8?
或者有什么好的解决方法吗?
编辑:抱歉,蜜蜂如此不明确。嗯,首先:我使用 Docx4j 和 Apache POI 以及 getText() 方法从 doc、docx 和 pdf 中获取一些文本并将它们保存在字符串中。
然后我试图匹配这些文本中的关键字,我从 .txt 文件中读出。
这些关键字显示在可运行 Java 文件的组合框中。我可以在那里看到编码问题。它不会匹配任何使用上述单词的关键字。
在我的 IDE 中它工作正常。在我重新设计之后,我试图在这里发布一些代码。
TXT 文件采用 UTF-8 格式。如果我将它转换为 ANSI,我会看到与 Jar 中相同的问题。读出它:
if(inputfile.exists() && inputfile.canRead())
{
try {
FileReader reader = new FileReader(inputfilepath);
BufferedReader in = new BufferedReader(reader);
String zeile = null;
while ((zeile = in.readLine()) != null) {
while(zeile.startsWith("#"))
{
if (zeile.startsWith(KUERZELTITEL)) {
int cut = zeile.indexOf('=');
zeile = zeile.substring(cut, zeile.length());
eingeleseneTagzeilen.put(KUERZELTITEL, zeile.substring(1));
kuerzel = zeile.substring(1);
}
...
这为我做到了:
File readfile = new File(inputfilepath);
BufferedReader in = new BufferedReader(
new InputStreamReader(
new FileInputStream(readfile), "UTF8"));
谢谢!