mirror of
https://gitcode.com/huyuchengus/gitcode_knowledge.git
synced 2025-07-13 12:13:28 +00:00
备份博文内容
This commit is contained in:
parent
3c31124dd4
commit
ef9beb0623
1
CSDN博文备份/UTF-8的BOM含义作用与注意事项-147598554.md
Normal file
1
CSDN博文备份/UTF-8的BOM含义作用与注意事项-147598554.md
Normal file
@ -0,0 +1 @@
|
||||
<p>UTF-8的BOM是什么有何作用。</p> <br><p></p> <br><p></p> <br><p class="img-center"><a href="https://cdn.isharkfly.com/com-isharkfly-www/discourse-uploads/original/3X/9/9/99b11fdbb112a2caeac81ba79f61198b8420a0a7.png" rel="nofollow"><img alt="image" height="254" src="https://i-blog.csdnimg.cn/img_convert/98d91f3def52ebfd1a2b58364fcb22f7.png" width="499" /></a></p> <br><p></p> <br><p><strong>BOM: Byte Order Mark</strong></p> <br><p>UTF-8 BOM又叫UTF-8 签名,其实UTF-8 的BOM对UFT-8没有作用,是为了支援UTF-16,UTF-32才加上的BOM,BOM签名的意思就是告诉编辑器当前文件采用何种编码,方便编辑器识别,但是BOM虽然在编辑器中不显示,但是会产生输出,就像多了一个空行。</p> <br><p>一般采用UTF-8无BOM格式即可。</p> <br><p>BOM(byte-order mark),即字节顺序标记,它是插入到以UTF-8、UTF16或UTF-32编码Unicode文件开头的特殊标记,用来识别Unicode文件的编码类型。对于UTF-8来说,BOM并不是必须的,因为BOM用来标记多字节编码文件的编码类型和字节顺序(big-endian或little-endian)。</p> <br><p>在绝大多数编辑器中都看不到BOM字符,因为它们能理解Unicode,去掉了读取器看不到的题头信息。若要查看某个Unicode文件是否以BOM开头,可以使用十六进制编辑器。下表列出了不同编码所对应的BOM。</p> <br><p></p> <br><pre><code>BOM Encoding<br>EF BB BF UTF-8<br>FE FF UTF-16 (big-endian)<br>FF FE UTF-16 (little-endian)<br>00 00 FE FF UTF-32 (big-endian)<br>FF FE 00 00 UTF-32 (little-endian)<br></code></pre> <br><p>为了识别 Unicode 文件,Microsoft 建议所有的 Unicode 文件应该以 ZERO WIDTH NOBREAK SPACE(U+FEFF)字符开头。这作为一个“特征符”或“字节顺序标记(byte-order mark,BOM)”来识别文件中使用的编码和字节顺序。</p> <br><p></p> <br><p></p> <br><p class="img-center"><a href="https://cdn.isharkfly.com/com-isharkfly-www/discourse-uploads/original/3X/3/8/3888d07f1c7625dd1551dc628209b03faaa5d22d.png" rel="nofollow"><img alt="image" height="388" src="https://i-blog.csdnimg.cn/img_convert/58175e3b1a81f890f29193dbca48caf8.png" width="690" /></a></p> <br><p></p> <br><p>Linux/UNIX 并没有使用 BOM,因为它会破坏现有的 ASCII 文件的语法约定。</p> <br><p></p> <br><p>UTF-8的BOM(Byte Order Mark)是一个特殊的字符标记,它由三个字节组成:<code>EF BB BF</code>(十六进制表示)。</p> <br><h3>主要作用</h3> <br><ol><li><strong>文件编码标识</strong>:BOM可以明确标识文件是以UTF-8编码保存的,帮助软件正确识别编码方式。</li><li><strong>兼容性</strong>:某些Windows程序(如记事本)使用BOM来区分UTF-8和其他编码。</li></ol> <br><h3>注意事项</h3> <br><ul><li>UTF-8实际上不需要BOM,因为它没有字节序问题(与UTF-16和UTF-32不同)</li><li>在某些情况下,BOM可能导致问题: <br> <ul><li>网页开发中可能导致HTTP头部被破坏</li><li>在Unix/Linux系统中的脚本文件中可能导致"#!"行无法被正确识别</li><li>某些老旧系统可能无法正确处理带BOM的文件</li></ul> </li></ul> <br><h3>实践建议</h3> <br><ul><li>如果文件只在Windows环境使用,可以保留BOM</li><li>如果文件需要跨平台使用或在网络环境中使用,通常建议不使用BOM</li></ul> <br><p>大多数现代文本编辑器允许您选择是否添加BOM标记当保存UTF-8文件时。</p> <br><p></p> <br><h3>Excel</h3> <br><p>当使用Excel 打开无 BOM 文件的时候,可能会出现字符乱码。</p> <br><p></p> <br><p><a href="https://www.isharkfly.com/t/utf-8-bom/17254" rel="nofollow" title="UTF-8的BOM:含义、作用与注意事项 - 技术宅 - iSharkFly">UTF-8的BOM:含义、作用与注意事项 - 技术宅 - iSharkFly</a></p>
|
Loading…
x
Reference in New Issue
Block a user