@
dorentus 我看到的LZ说的“统一”修饰的是“处理”,于是理解为有“一致”的规约。所以我给出了我正在使用的整套方案。仔细看你还会注意到,里面已经对不同形式和目的的内容给出例外了,并非都使用UTF-8+BOM。
不过,一开始没特别注意到后来回复的“不想自己的习惯设定和别人差异太大”,那么我得承认这不太符合LZ的要求。不过关于这点我希望能被理解:这里没有谁强调尽量减小差异就是最终目的。
和你看样子理解的一样,加了BOM之后,剩下的东西和BOM不一样了,在这个意义上不“统一”。但这是有意的。上面已经解释过大概,这里再补充一点理由。
类比解释就好像一些媒体文件的封装格式,有效“负载”内容不同于全部文件内容,通常典型地还有附加的元数据。BOM对于文本文件来说就是附加在文件头的元数据。作为持久储存的形式,元数据的存在即在一定意义上表明维护者注意到了文件的完整性及其对内容的限定。而例外则是考虑到使用形式(用于拼接)或者储存之外更主要的目的(作为脚本执行)的实际限制来设定的。