原文链接

在我们通常使用的windows系统中,我发现了一个有趣的现象。我新建一个空的文本文档,点击文件-另存为-编码选择UTF-8,然后保存。此时这个文件明明是空的,却占了3字节大小。原因在于:此时保存的编码方式自动会变为UTF-8 BOM

因为Unicode可以采用16位或者32位编码,所以计算机在处理时需要知道其字节顺序,BOM就是用来标识字节流的字节顺序的,但字节顺序这个 概念对UTF-8来说是没有意义的,所以BOM对UTF-8同样没有意义。但Unicode标准却BOM在UTF-8编码格式中存在。其存在位置在文件开 头,以三个字节0xEF, 0xBB, 0xBF表示。

UTF-8编码不推荐使用无意义的BOM,但许多Windows程序却在保存UTF-8编码的文件时将其存为带BOM的格式(即在文件开头加上0xEFBBBF三个字节),这么干的就包括Windows记事本。

因此,在编辑UTF-8的文件时,建议不要使用记事本等进行编辑,虽然保存后的文件仍然是UTF-8,但却已经不再是保存前的UTF-8了,这在使用这些文件的时候可能就会因为编码而出现问题,就像我文章开头所描述的那样。

去掉UTF-8编码文件BOM的方法:用Notepad++的Encoding菜单中的Encoding in UTF-8 without BOM即可。或者用任何16进制编辑器将文件前三个字节去掉。再或者更简单的:用VIM设置UTF-8编码的BOM标记。

utf8和utf-8 bom相关推荐

  1. UTF-8和不带BOM的UTF-8有什么区别?

    没有BOM的 UTF-8和UTF-8有什么区别? 哪个更好? #1楼 我从另一个角度看待这个问题. 我认为带有BOM的UTF-8更好,因为它提供了有关文件的更多信息. 仅当遇到问题时,我才使用不带BO ...

  2. 移除UTF-8文件头的BOM

    来源:http://blog.csdn.net/inkfish/article/details/6059254 UTF-8 BOM又叫UTF-8 签名,在UTF-8文件的头部,长度为3个字节.其实UT ...

  3. php转换编码去掉bom,UTF-8编码怎么去掉BOM头?

    使用uft8编码或做页面的朋友会碰见过把页面保存时会发现页面是空白的但是页面确实有内容,后会会听说是bom头的问题,那么什么是bom头了,要如何解决因为bom头导致页面空白问题呢,下面我们一起来看看具 ...

  4. php json_decode utf8,关于utf 8:PHP json_encode json_decode UTF-8

    如何将包含国际字符的JSON编码字符串保存到数据库中,然后在浏览器中解析解码后的字符串? $string ="très agréable"; // to the database ...

  5. UTF8 与 UTF8 +BOM 区别

    一个带标签,一个没有标签. BOM是Byte Order Mark(定义字节顺序),因为在网络传输中分两种顺序:大头和小头. 由于兼容性,带BOM的utf-8在一些browser中显示为乱码. 网上搜 ...

  6. UTF-8的BOM头

    字符编码相关信息  http://baike.baidu.com/view/1204863.htm UTF-8 编码的文件可以分为no BOM 和 BOM两种格式. 有bom头的存储或者字节流,它一定 ...

  7. Java读取UTF-8格式txt文件第一行出现乱码及解决;Java读带有BOM的UTF-8文件乱码原因及解决方法(转载)...

    原文地址:http://blog.csdn.net/jackpk/article/details/5702964/ Java读取UTF-8的txt文件第一行出现乱码"?"及解决 t ...

  8. UTF-8与UTF-8(BOM)区别和一些说明

    写在前面 在我们通常使用的windows系统中,我发现了一个有趣的现象.我新建一个空的文本文档,点击文件-另存为-编码选择UTF-8,然后保存.此时这个文件明明是空的,却占了3字节大小.原因在于:此时 ...

  9. 是否应该使用utf-8 bom——因DirectVobSub不支持utf-8 no bom带来的问题

    使用DirectVobSub作为播放器的字幕插件. 把字幕转换成utf-8 no bom格式,播放时字幕显示乱码. 把字幕转换成utf-8 bom格式,播放时字幕正常. 看来DirectVobSub不 ...

  10. UTF8 与 UTF8 +BOM

    一个带标签,一个没有标签. BOM是Byte Order Mark(定义字节顺序),因为在网络传输中分两种顺序:大头和小头. 由于兼容性,带BOM的utf-8在一些browser中显示为乱码. 网上搜 ...

最新文章

  1. SR:嗜酸古菌的代谢和进化模式
  2. ecshop管理找不到index.php,前台出现找不到这样的目录,打不开某文件的提示
  3. 自学编程是从python语言还是c语言开始-初中生想学编程,请问先学C语言好还是先学Python?...
  4. C语言实现随机生成0~100的数
  5. ESP8266 wifi干扰、钓鱼实现
  6. 为什么使用Maven
  7. Manthan, Codefest 19 (open for everyone, rated, Div. 1 + Div. 2) F. Bits And Pieces sosdp预处理超集
  8. 信息学奥赛一本通 2016:【例4.1】for循环求和
  9. 使用java理解程序逻辑(16)
  10. Google Cloud大规模宕机;中国正式进入 5G 商用元年!苹果发布SwiftUI |开发者周刊...
  11. ubuntu mysql 操作_Ubuntu系统下MySQL数据库基本操作
  12. datax 不识别字段过滤_初效空气过滤器种类
  13. 有向图(3.基于十字链表的c++实现)
  14. 【易微信系列一】查找附近的人
  15. win10计算机语言超清壁纸,适合win10励志超清壁纸欣赏
  16. 报错:【pip Error】ERROR: Cannot determine archive format of C:\Users\YDD\AppData\Local\Temp\pip-req-buil
  17. 2022乐抖网络验证授权系统源码+实测可用
  18. OpenCV空间人工智能竞赛:第一部分
  19. Linux 下 setfacl访问控制的使用
  20. 第十三届蓝桥杯复盘及未来规划

热门文章

  1. Idea 2022 创建 Artifacts 运行 Tomcat 步骤
  2. java电商平台_Java开源生鲜电商平台
  3. matlab基础语法
  4. python:.py文件转.dll文件(.pyd文件)
  5. php mail 垃圾邮件,如何避免我的邮件从PHP邮件()被标记为垃圾邮件? - 程序园
  6. 百度人脸识别测试环境配置教程
  7. 【广州数据报表中心怎么样】什么样的大数据
  8. r语言进行go富集分析_好用的在线GO富集分析工具
  9. 架构师之路:从Java码农到年薪八十万的架构师
  10. Android系统:如何开启或隐藏Navigation Bar导航 栏