昨天发现一个ini配置文件,在某些机器上修改后程序无法识别的问题。DBinfo_old是修改后,DBinfo.ini是修改前。

同一份程序,可以正确识别DBinfo.ini中的DBAddress等内容,但是不能识别DBinfo_old中的内容。使用UltraEdit打开内容也一样。

但是使用UltraEdit的16进制查看功能,却发现DBinfo_old的头部多出了3个字节:EF BB BF,而EF BB和BF 5B恰好表示锘字和縖字,其中5B是左方括号。

并且在Linux上也能看出两者的不同:

最后想到应该是DOM作祟,用UltraEdit的另存为功能验证了一下,果然如此:

当把文件编码选为UTF-8时,系统会自动在文件头部添加上EF BB BF这三个字节,而选为UTF-8 NO BOM时会自动去掉这三个字节。

附:

关于BOM是什么,引用zhangwei@lenovots.com一段话来解释一下,以下是引文:

对比发现文本装换程序导致转换后的文本出现多于站位符,二进制表示为EF BB EF:

所谓的EF BB EF问题,其实是UTF-8文件的Unicode签名BOM(Byte Order Mark)问题,在JSP和PHP开发中都经常碰到。

BOM(Byte Order Mark),是UTF编码方案里用于标识编码的标准标记,在UTF-16里本来是FF FE,变成UTF-8就成了EF BB BF。这个标记是可选的,因为UTF8字节没有顺序,所以它可以被用来检测一个字节流是否是UTF-8编码的。微软做这种检测,但有些软件不做这种检测,而把它当作正常字符处理。

微软在自己的UTF-8格式的文本文件之前加上了EF BB BF三个字节, windows上面的notepad等程序就是根据这三个字节来确定一个文本文件是ASCII的还是UTF-8的, 然而这个只是微软暗自作的标记, 其它平台上并没有对UTF-8文本文件做个这样的标记。

(以上引自http://kms.lenovots.com/kb/article.php?id=3354)

最后要注意一点,不同版本的UltraEdit,在点保存时的默认选项不同,版本15会默认选择UTF-8(With BOM)而版本18则会默认选择UTF-8 NO BOM。

UTF-8文本文件头部出现乱码“锘*”的问题及解决方法相关推荐

  1. Json返回时间中出现乱码问题的两种解决方法

    Json返回时间中出现乱码问题的两种解决方法 参考文章: (1)Json返回时间中出现乱码问题的两种解决方法 (2)https://www.cnblogs.com/hanyinglong/archiv ...

  2. Tomcat中文乱码问题的原理和解决方法

    为什么80%的码农都做不了架构师?>>>    Tomcat中文乱码问题的原理和解决方法 自从接触Java和JSP以来,就不断与Java的中文乱码问题打交道,现在终于得到了彻底的解决 ...

  3. bs4 乱码_Python BeautifulSoup中文乱码问题的2种解决方法

    解决方法一: 使用python的BeautifulSoup来抓取网页然后输出网页标题,但是输出的总是乱码,找了好久找到解决办法,下面分享给大家 首先是代码 复制代码 代码如下: from bs4 im ...

  4. 笔记本win7系统文件夹乱码打不开的解决方法

    最近,很多用户在使用win7系统时,打开文件夹却发现文件夹出现乱码打不开,该如何解决呢?下面小编就给大家分享一下笔记本win7系统文件夹乱码打不开的详细解决方法.一起去看看吧! 1.按下"W ...

  5. SQLServer乱码问题的分析及解决方法(中文字符被存入数据库后,显示为乱码)

    SQLServer乱码问题的分析及解决方法(中文字符被存入数据库后,显示为乱码) 参考文章: (1)SQLServer乱码问题的分析及解决方法(中文字符被存入数据库后,显示为乱码) (2)https: ...

  6. linux红帽网页中文乱码解决,【linux学习笔记】安装redhat时中文显示乱码(小方框)解决方法...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 ------------------------------------- 防抽------------------------------------- ...

  7. Mac OS X 下文件名乱码出现的原因和解决方法

    在Mac电脑的使用过程中,偶尔会出现各种各样的问题,有些用户会遇到下载文件是乱码的问题,为什么会出现乱码?如何解决.下面我们分享出现乱码的原因及解决方法. 乱码原因: 缺少服务造成的 乱码: FCPX ...

  8. 彻底搞懂 python 中文乱码问题_Python BeautifulSoup中文乱码问题的2种解决方法

    解决方法一: 使用python的BeautifulSoup来抓取网页然后输出网页标题,但是输出的总是乱码,找了好久找到解决办法,下面分享给大家 首先是代码 from bs4 import Beauti ...

  9. 计算机软件图标乱码,win7系统图标汉字显示乱码变成奇怪符号的解决方法

    很多小伙伴都遇到过win7系统图标汉字显示乱码变成奇怪符号的困惑吧,一些朋友看过网上零散的win7系统图标汉字显示乱码变成奇怪符号的处理方法,并没有完完全全明白win7系统图标汉字显示乱码变成奇怪符号 ...

最新文章

  1. 20分钟教你搞懂Git!
  2. sonarqube通过sonarqube maven插件分析maven工程使用的mvn命令示例
  3. Android菜鸟的成长笔记(28)——Google官方对Andoird 2.x提供的ActionBar支持
  4. 技能UP:SAP OBYC自动记账的实例说明(含value String应用说明)
  5. CCPC-EDG专场——E.Buy and Delete
  6. md5util java_Java 工具类 - MD5Util
  7. ⼤数据可视化技术:可视化技术概述与Echarts⼊⻔
  8. 暑期计算机数学培训心得体会,实用的暑期培训心得体会3篇
  9. png转ico 或如何制作ico文件
  10. Python 愤怒的小鸟代码实现:物理引擎pymunk使用
  11. 谷歌插件EpubPress 将网页保存为电子书
  12. Log4j2日志记录框架的使用教程与简单实例
  13. 3d打印机品牌排行榜揭晓,stratasys公司名列前茅
  14. 工具类批量修改照片的名字
  15. 信号偏移成为边界地区呼吸的痛
  16. 数据分析案例--2012美国总统竞选赞助数据分析
  17. Android facebook VK 登录与分享 开源SDK
  18. 从零到一实现企业级微前端框架,保姆级教学
  19. 将.fig或其他图片文件转为Visio可编辑的.vsd文件
  20. 【渝粤教育】电大中专跨境电子商务理论与实务 (26)作业 题库

热门文章

  1. DotNet Framework源代码调试问题
  2. linux下安装apache tomcat,Linux CentOS 7下 Apache Tomcat 7 安装与配置
  3. HTML5语言教程:渐进使用HTML5语言识别
  4. 数据结构——线性表之链式存储结构
  5. python标准模块--os
  6. 树网的核(codevs 1167)
  7. CentOS Linux解决Device eth0 does not seem to be present 但是没有发现eth1
  8. android - ADT本地配置、sdk配置
  9. 关于微信客服消息 40001和45015 模板消息 errcode:40037 遇到的自己挖的坑
  10. java B2B2C springmvc mybatis电子商务平台源码-Spring Cloud Security