您的位置:首页> 日志> 前端技术 正文
在用Visual Studio 批量操作视图中过程中,发现保存后很多视图出现了乱码,经查看是由不用编码造成的。因SA默认的编码是UTF-8+BOM的。
那么SA视图文件是保存为UTF-8呢,还是要加BOM呢,回答这个问题之前就要先了解下BOM。
什么是BOM
BOM(byte-order mark),即字节顺序标记,它是插入到以UTF-8、UTF16或UTF-32编码Unicode文件开头的特殊标记,用来识别Unicode文件的编码类型。对于UTF-8来说,BOM并不是必须的,因为BOM用来标记多字节编码文件的编码类型和字节顺序(big-endian或little-endian)。
在绝大多数编辑器中都看不到BOM字符,因为它们能理解Unicode,去掉了读取器看不到的题头信息。若要查看某个Unicode文件是否以BOM开头,可以使用十六进制编辑器。
BOM的来历
为了识别 Unicode 文件,Microsoft 建议所有的 Unicode 文件应该以 ZERO WIDTH NOBREAK SPACE(U+FEFF)字符开头。这作为一个“特征符”或“字节顺序标记(byte-order mark,BOM)”来识别文件中使用的编码和字节顺序。Linux/UNIX 并没有使用 BOM,因为它会破坏现有的 ASCII 文件的语法约定。
带BOM和不带BOM的区别
UTF-8和带 BOM 的 UTF-8的区别就是有没有 BOM。即文件开头有没有 U+FEFF,也就是说有没有这个标记。那么我们带还是不带呢?
如果你的编程平台需要跨平台编译,比如,会在linux平台上编译,而不是只在windows上运行,建议不带BOM,unicode标准就是不带,带BOM毕竟那是微软的那一套,带了会出现很大的问题。反之,如果你的程序只在windows平台上编译出windows程序,这个可有可无。
 
因此,UTF-8 不需要 BOM,尽管 Unicode 标准允许在 UTF-8 中使用 BOM,所以不含 BOM 的 UTF-8 才是标准形式,在 UTF-8 文件中放置 BOM 主要是微软的习惯。既然是一种习惯,那我们就习惯吧!
 
众多的编码就要统一一个标准,不然隐患很多,下面以EditPlus为例说明怎么用它批量更改编码
 
一、在左侧目录栏选择要批量更改编码的视图右键在弹出的对话框中点击OPEN
 
二、顶部Document 下找到File Encoding,在对话框中点击OK
三、在弹出的对话框选择UTF-8+BOM  点击ok后Save All 即可
 
 
在目录文件下可以查看下效果,自动备份的bak文件就说明以前编码不是UTF-8+BOM