在编辑编码为UTF-8 w / o [spurious] BOM的文件的过程中,内容可能变得没有ASCII或ANSI范围之外的任何Unicode字符。在下次重新打开文件时,一些文本编辑器(Notepad ++)会将其解释为ASCII / ANSI编码并将其打开。不知道用户将继续编辑的更改,现在添加非ANSI Unicode字符,但无法使用,因为保存在ANSI中。可以存在一个菜单选项(Notepad ++)来打开ANSI文件作为没有BOM的UTF-8,但是导致了无意中用Unicode编码覆盖ANSI文件的相反问题。
答案 0 :(得分:2)
一种解决方法是将ANSI范围之外的字符添加到文件中的注释中。根据解码算法,它可能会强制编辑器(Notepad ++)将文件识别为UTF-8无BOM表编码。
例如,在HTML文档中,您可以使用此类Unicode注释跟踪标题中的字符集定义,此处为U + 05D0希伯来语字母ALEF: < meta http-equiv =“Content-Type”content =“text / html; charset = utf-8”> <! - א - >
答案 1 :(得分:2)
当文件看起来相同时,您如何建议编辑器告诉ASCII / ANSI和UTF-8没有BOM的区别?
如果您希望保证将UTF-8识别为UTF-8,请添加BOM,或强制文件包含UTF-8字符。
答案 2 :(得分:2)
将编辑器配置为始终使用UTF-8,如果可能,请向编辑的创建者投诉。不是针对unicode的字符集是IMO,已经弃用,应该这样对待。
只使用ASCII空间(7位)中的字符的文件在UTF-8中几乎是相同的,所以如果你必须以ASCII编码提供某些东西,就不要输入任何unicode字符。