我正在尝试使用 RandomAccessFile 对象将一些文本写入文件,但未正确保存非英语字符。
具体来说,这句话 --> "und NotenstEnder Libero"
这样保存 --> "und Notenst•nder Libero"
其中“E”字符不是英文(我认为 ascii 码是 917)。
我使用的代码是这样的:
file = new RandomAccessFile(path, "rw");
...
file.seek(file.length());
file.writeBytes("The data i want");
我怎样才能避免这种情况并写出正确的文本?
(PS:我知道file.writeChars,我想知道是否有其他方法!)
最佳答案
主要问题可能是您的文件编码。您应该使用正确的编码(可能是 UTF-8),例如:
byte[] b = "The data i want".getBytes("UTF-8");
file.write(b);
请注意,如果您使用文本查看器/编辑器来检查文件,根据您使用的是哪个,您可能必须在文件开头写一个 UTF-8 字节顺序标记或告诉查看器/editor 如果它自己无法识别,则使用 UTF-8。
关于java - 在 Java 中使用 RandomAccessFile 编写非英文字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22304440/