Java:无法以 UTF-8 格式保存

发布于 2024-11-25 08:46:48 字数 255 浏览 2 评论 0 原文

我在java中有这行代码:

new BufferedWriter(new OutputStreamWriter(new FileOutputStream(name, append), "UTF-8"));

This writer does not write an UTF-8 file,因为当我在notepad++中打开它时,它说编码是:ANSI as UTF-8。我需要它是纯UTF-8。

您有什么建议吗?

I have this line of code in java:

new BufferedWriter(new OutputStreamWriter(new FileOutputStream(name, append), "UTF-8"));

This writer does not write an UTF-8 file, because when I open it in notepad++ it says that the encoding is: ANSI as UTF-8. I need it to be pure UTF-8.

Do you have any suggestions?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

溺ぐ爱和你が 2024-12-02 08:46:48

notepad++(以及任何其他工具)只能猜测编码,它不会写入文件中的任何位置(或某些元数据中)。

如果您编写的文本不包含 ASCII 范围之外的任何字符(即没有 Unicode 代码点 > 127 的字符),则使用 ANSI 编码的文件与使用 UTF-8 编码的文件没有区别。

notepad++ (and any other tool) can only guess the encoding, it's not written anywhere in your file (or in some metadata).

And if the text you've written doesn't contain any characters outside the ASCII range (i.e. no character with a Unicode codepoint > 127), then a file with ANSI encoding is indistinguishable from one in UTF-8 encoding.

墨落成白 2024-12-02 08:46:48

Notepad++ 使用启发式算法来检测编码,即检测到的编码可能与真实的编码不同(这是一个猜测)。

在这种情况下,Notepad++ 是正确的,但误解了编码。 ANSI 为 UTF-8 纯UTF-8,只是没有BOM

Notepad++ uses a heuristic algorithm to detect the encoding, i.e. the detected encoding can differ from the true on (it's a guess).

In this case, Notepad++ is correct, but misunderlabeling the encoding. ANSI as UTF-8 is pure UTF-8, just without a BOM.

往昔成烟 2024-12-02 08:46:48

Notepad++ 很可能需要在文件开头添加 BOM。首先将字节 EF BB BF 写入文件,然后写入编码字符。

Most likely Notepad++ needs the BOM at the beginning of your file. Write the bytes EF BB BF first to your file, then the encoded characters.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文