我有一个简单的java应用程序,它以utf-8
编码保存一些String
。
但是当我用记事本打开该文件并另存为
时,它显示它的编码为ANSI
。现在我不知道问题出在哪里?
我保存文件的代码是
File fileDir = new File("c:\\Sample.txt");
Writer out = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(fileDir), "UTF8"));
out.append("kodehelp UTF-8").append("\r\n");
out.append("??? UTF-8").append("\r\n");
out.append("???? UTF-8").append("\r\n");
out.flush();
out.close();
最佳答案
您写入文件的字符(如代码片段中所示)位于 UFT-8 的基本 ASCII 子集中。记事本可能会自动检测格式,并且看不到任何超出 ASCII 范围的内容,从而确定该文件是 ANSI。
如果您想强制做出不同的决定,请放置远远超出 ASCII 范围的字符,例如 字
或 õ
。
示例中的 ???
字符串可能是 UTF-8。如果是这样。确保您的 IDE 和/或构建工具将文件识别为 UTF-8,并且文件确实是 UTF-8 编码的。如果您提供有关构建系统的更多信息,那么我们可以提供进一步的帮助。
关于java - 无法使用java在Windows服务器中保存utf8文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27764358/