博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
该死的UTF-8的BOM
阅读量:5230 次
发布时间:2019-06-14

本文共 1076 字,大约阅读时间需要 3 分钟。

首先说明一下什么是BOM:

      BOM: Byte Order Mark

UTF-8 BOM又叫UTF-8 签名,其实UTF-8 的BOM对UFT-8没有作用,是为了支援UTF-16,UTF-32才加上的BOM,BOM签名的意思就是告诉编辑器当前文件采用何种编码,方便编辑器识别,但是BOM虽然在编辑器中不显示,但是会产生输出,就像多了一个空行。

      我在编译ARM汇编程序时,总是出现Error: bad instruction `'等等错误,经过认真分析,发现代码没有任何问题,应该是编码的问题,因为我平时习惯把所有文件都保存为UTF-8格式以方便在windows和linux之间查看,没有考虑到BOM有无问题,经UE多次更换保存格式后,发现使用UTF-8无BOM才能让编译顺利通过,这才发现UTF-8的BOM对ARM汇编无用,所以平时一般采用UTF-8无BOM格式即可。

      经过网络搜索的答案,有许多关于保存php文件要用UTF-8无BOM格式,否则也会出现许多莫名其妙的问题,看来文件格式相当重要。

      在交叉编译arm汇编过程中,我还遇到一个““的警告,在文件最后补一个新行即可。后搜的问题答案为Unix文档的回车换行符是一个字符\n,Windows的是分别的两个\n\r,所以你在Windows下编辑的最后一个字符是\r不是\n,所以编译器以为有错误。

  补充:刚自己写了一个注册表文件时,发现不能系统提示不能添加二进制注册表,发现原来又是编码在作怪,平时内容都是UTF-8,这里系统注册表不能识别了,后另存为ANSI格式就可以重新导入注册表了!!

  另:win7要在当前目录打开DOS,省去在DOS下繁琐地输入命令进入当前目录的方法,方法一:可以按住shift再右键当前目录,点“在此处打开命令窗口”进入DOS下的该目录。方法二:将以下内容保存成一个*.reg的注册表文件,双击导入系统即可,注意保存格式要为ANSI!! 

1 Windows Registry Editor Version 5.002 3 [HKEY_CLASSES_ROOT\Folder\shell\Open_DOS_Box]4 @="[进入DOS目录]"5 6 [HKEY_CLASSES_ROOT\Folder\shell\Open_DOS_Box\command]7 @="cmd.exe /s /k pushd \"%V\""

 

转载于:https://www.cnblogs.com/elect-fans/archive/2012/05/10/2494276.html

你可能感兴趣的文章
点分治
查看>>
【读书笔记】态度
查看>>
linux mint 18.2 install erlang
查看>>
zbb20181012 spring,aop,execution切入点表达式
查看>>
一个DIV拖放的案例
查看>>
hdu 1160 FatMouse's Speed
查看>>
python3字典:获取json响应值来进行断言
查看>>
Nim证明即推导
查看>>
[Kubernetes]编排其实很简单
查看>>
2018.4.10 Ubuntu cat命令解答、用法
查看>>
RTF文件格式
查看>>
填速度环的大坑以及转向环的疑问还有对PID的魔性认识
查看>>
2015-03 月份学习总结 分类: 学习总结 20...
查看>>
实践作业3:白盒测试实践(小组作业)记录1
查看>>
BZOJ1966 [Ahoi2005]VIRUS 病毒检测 动态规划
查看>>
Json常用操作
查看>>
PHP学习笔记
查看>>
Android学习笔记
查看>>
Python3 官方文档翻译 - 4.7 函数定义
查看>>
java nio 学习
查看>>