我想编写一个代码来转换java.I中编码的UTF-8,创建" a.txt"文件中只包含" a.txt"中的英文字符。 file.While generate,它给我ANSI编码版本,但我需要UTF-8编码版本。
注: - 文件不包含任何特殊字符,仅包含ASCI值。
我写了下面的代码。
writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), "UTF-8"));
writer.write(content);
答案 0 :(得分:0)
没有ANSI编码(对于前128个字符为ASCII的单字节字符集,这是一个不精确的术语);如果你的文件只包含ASCII(字符0 - 127),那么如果你使用UTF-8或其中一个' ANSI'编码。
考虑到编辑推断字符集(或更好:猜测(!)),并且只有ASCII 0 - 127的UTF-8与实际ASCII或“ANSI”之一无法区分。编码,这完全是预期的
这意味着如果你用UTF-8编写一个文件 - 例如 - 只有"ABC"
,它也是有效的ASCII,Windows-1252,ISO-8859-x和任何其他需要的字符集ASCII作为起点。编辑器无法确定实际的字符集是什么,只报告ANSI。
换句话说:你的代码工作正常;只是你的编辑器的启发式猜测错误的字符集。最后,文本文件只是一个字节流,只有在应用正确的字符集时才有意义;字符集未在文件本身中指定。
PS:你问题中的代码有一个拼写错误,因为它引用了UTF-18
,它不存在。