写入文件时出现奇怪的字符 (Mac) (Java)
我正在 Mac(雪豹)上工作。使用 Java,我清除文件内容然后写入。 这是清除文件的代码:
new File(FileName).delete();
new File(FileName).createNewFile();
之后,当我写入文件时,我发现奇怪的字符;例如: 而不是写:
预期为“=”、“,”、“;”、“asm”
它写道:
预期“=”、“、”、“;”、“asm”
我确定 createNewFile() 会导致问题,因为当我将相同的文本写入我创建的文件时不会出现问题手动。我能做些什么?
谢谢。
I'm working on Mac (Snow Leopard). Using Java, I clear file contents and then write to it.
That's the code to clear the file:
new File(FileName).delete();
new File(FileName).createNewFile();
Afterwards, when I write to the file, I find weird characters; for example:
instead of writing:
expected ‘=’, ‘,’, ‘;’, ‘asm’
it writes:
expected ‘=’, ‘,’, ‘;’, ‘asm’
I'm sure that createNewFile() causes the problem, because no problem occurs when I write the same text to a file I created manually. What can I do?
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您在某处引入了转码错误。
您在 Java 中将数据编码为 UTF-8,但无论您使用什么来解码它,都会将数据视为(可能)MacRoman。
或者,您的 Java 编辑器将文件保存为 UTF-8,而您的编译器在编译之前将其解码为 MacRoman。
阅读本文。
You're introducing a transcoding error somewhere.
You are encoding the data as UTF-8 in Java but whatever you're using to decode it is treating the data as (probably) MacRoman.
Or, your Java editor is saving the file as UTF-8 and your compiler is decoding it as MacRoman prior to compilation.
Read this.