3

在编辑编码为 UTF-8 w/o [spurious] BOM 的文件的过程中,内容可能会缺少 ASCII 或 ANSI 范围之外的任何 Unicode 字符。在下一次重新打开文件时,一些文本编辑器 (Notepad++) 会将其解释为 ASCII/ANSI 编码并照此打开。不知道用户将继续编辑的更改,现在添加非 ANSI Unicode 字符,但呈现但无用,因为保存在 ANSI。可以存在一个菜单选项 (Notepad++) 以将 ANSI 文件打开为 UTF-8 w/o BOM,但会导致无意中使用 Unicode 编码覆盖 ANSI 文件的相反问题。

4

3 回答 3

2

一种解决方法是将 ANSI 范围之外的字符添加到文件中的注释中。根据解码算法,它可能会强制编辑器 (Notepad++) 将文件识别为以 UTF-8 w/o BOM 编码的文件。

例如,在 HTML 文档中,您可以在标题中使用这样的 Unicode 注释来跟踪字符集定义,这里是 U+05D0 HEBREW LETTER ALEF:<meta http-equiv="Content-Type" content="text/html; charset= utf-8"> <!-- א -->

于 2009-12-17T20:56:23.617 回答
2

当文件看起来相同时,您如何建议编辑器区分 ASCII/ANSI 和 UTF-8 w/o BOM?

如果您希望确保将 UTF-8 识别为 UTF-8,请添加 BOM,或强制文件包含 UTF-8 字符。

于 2009-12-17T20:56:24.077 回答
2

如果可能,将您的编辑器配置为始终使用 UTF-8,如果没有,请向您的编辑器的创建者投诉。不针对 unicode 的字符集在 IMO 中已被弃用,应予以处理。

无论如何,仅使用 ASCII 空间中的字符(7 位字符)的文件在 UTF-8 中几乎相同,因此如果您必须以 ASCII 编码提供某些内容,请不要键入任何 unicode 字符。

于 2009-12-18T05:45:34.743 回答