1

文件(HTML)内容具有特殊字符,例如 '-' 替换为 '???' 在 linux 机器上。当我在 Windows 上运行相同的代码时,它不会被替换。

        PrintWriter out = new PrintWriter(file);
        for (String l : lines)
            out.println(l);
        out.close();

我尝试添加 Unicode UTF-16、UTF-8 和 iso-8859-1 不起作用

PrintWriter out = new PrintWriter(file, "UTF-16");

在 Windows 机器上,像 '-' 这样的特殊字符被替换为 '–'

先感谢您

4

2 回答 2

2

有几个破折号“-”和“-”。它们看起来相似,但它们具有不同的 unicode 值。在源代码中使用后者。

更多破折号在这里:http ://en.wikipedia.org/wiki/Dash 。你的符号是 "en dash" U+2013,你应该使用 "the standard ASCII hyphen" U+002D

于 2013-10-01T11:52:19.757 回答
0

我通过以文件的相同编码写入文件来解决

     InputStreamReader r = new InputStreamReader(new FileInputStream(file));

        // now, write the file again with the changes
        PrintWriter out = new PrintWriter(file, r.getEncoding());
        for (String l : lines)
            out.println(l);
        out.close();
于 2013-10-01T12:46:02.470 回答