如何避免无意中编码的UTF

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


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

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


你会如何建议编辑器在文件看起来相同的情况下说明ASCII / ANSI和UTF-8不带BOM的区别?

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


如果可能,配置编辑器始终使用UTF-8,如果没有,请向编辑器的创建者投诉。 不针对unicode的字符集是IMO,已被弃用,应该这样对待。

无论如何,仅使用ASCII空间中的字符(7位字符)的文件在UTF-8中几乎是相同的,所以如果您必须以ASCII编码传送某些内容,则不要输入任何Unicode字符。

链接地址: http://www.djcxy.com/p/33353.html

上一篇: How to avoid inadvertent encoding of UTF

下一篇: Save all files in Visual Studio project as UTF