被微软的UTF-8 BOM编码坑了

一、问题描述

    今天用git拉去代码时发现有的文件会出现乱码,但同事拉取下来却没有出现问题。

二、错误原因分析

    在这件事上,我和同事的唯一区别就是所用的操作系统不同,我用的是mac,他用的是window。同一个文件在不同操作系统的表现不同,很有可能是采用了window支持但mac不支持的编码格式。

    紧接着,我查看了出问题的文件的编码格式,果不其然,它并不是我们平常使用的UTF-8,而是UTF-8 BOM编码。

    BOM(byte order mark)是为 UTF-16 和 UTF-32 准备的,用于标记字节序(byte order)。UTF-8不推荐使用无意义的BOM,但许多Windows程序却在保存UTF-8编码的文件时将其存为带BOM的格式(即在文件开头加上0xEFBBBF三个字节),这么干的就包括Windows记事本,这种编码格式的文件在 Windows 之外的操作系统里会出现问题。

三、解决方案    

    建议大家使用Notepad++编辑,在 菜单栏-编码 中选择以 UTF-8 无BOM格式编码。

    

猜你喜欢

转载自blog.csdn.net/weixin_33656548/article/details/79724045