本日志标题:UTF-8、Unicode 标准化表单、BOM        [2006-7-28] Bookmark and Share

在“关于Dreamweaver制作UTF-8编码网页的测试 ”中提及的疑惑
http://www.cnbruce.com/blog/showlog.asp?cat_id=27&log_id=999

“阿韩”朋友一语解惑:即勾选上“包括 Unicode 签名(BOM)”



为详细了解,以下内容摘自帮助文档:

若要设置文档编码,请使用“默认编码”弹出式菜单。

“默认编码”指定在创建新页面时要使用的编码,以及指定在未指定任何编码的情况下打开一个文档时要使用的编码。有关更多信息,请参见了解文档编码。

如果选择 Unicode (UTF-8) 作为文档编码,则不需要实体编码,因为 UTF-8 可以安全地表示所有字符。如果选择其他文档编码,则可能需要用实体编码来表示某些字符。有关字符实体的更多信息,请参见 http://www.w3.org/TR/REC-html40/sgml/entities.html 。

如果选择 Unicode (UTF-8) 作为默认编码,请选择一个 Unicode 标准化表单。

有四种 Unicode 标准化表单。最重要的是标准化表单 C,因为它是用于万维网的字符模型的最常用表单。Macromedia 提供其他三种 Unicode 标准化表单作为补充。

在 Unicode 中,有些字符看上去很相似,但可用不同的方法存储在文档中。例如,“”(e 变音符)可表示为单个字符“e 变音符”,或两个字符“正常拉丁语 e”+“组合变音符”。Unicode 组合字符是与前一个字符结合使用的字符,因此变音符会显示在“拉丁语 e”的上方。这两种形式都显示为相同的印刷样式,但保存在文件中的每种形式是不同的。

标准化是指确保可用不同形式保存的所有字符都使用相同的形式进行保存的过程。即,文档中所有“”字符都保存为单个“e 变音符”或“e”+“组合变音符”,而不是在一个文档中保存为这两种形式。

有关 Unicode 标准化和可以使用的特定表单的更多信息,请参见 Unicode Web 站点,网址是 http://www.unicode.org/reports/tr15 。

如果选择 Unicode (UTF-8) 作为默认编码,则可以选择“包括 Unicode 签名 (BOM)”选项以在文档中包括字节顺序标记 (BOM)。

BOM 是位于文本文件开头的 2 到 4 个字节,可将文件标识为 Unicode,还标识后面字节的字节顺序。由于 UTF-8 没有字节顺序,因此可以选择添加 UTF-8 BOM。对于 UTF-16 和 UTF-32,这是必需的。

我特意注意了下,相同代码内容的两个文档,使用了BOM的文档字节比未使用的文档字节多3个字节

对在Dreamweaver中遇到的这个问题,说大不大,说小也不小,平时疏忽啊。。。

[Edit on 2006-7-28 19:14:22 By cnbruce]

在百度搜索完整的UTF-8、Unicode 标准化表单、BOM内容,或者用Google搜索相关的更多内容

By [cnbruce] at 18:54:55 | 评论 [8] | 浏览 [27285] | TrackBack| 返回顶部

About Comments
我的问题:一个.txt文本文件,全英文字符,另存为的时候可以看到下面显示的是utf-8编码,用DW的MX版本做的asp读取后存入access2000,打开access表可以发现部分字符出现乱码。指定codepage=65001和charset=utf-8没有作用。准备用DW8.0再试一下看怎么样。因为MX版本还没有“包括 Unicode 签名(BOM)”这个东西。
By [hnfxdd] at 2006-7-31 10:27:13
说了一大堆,感觉等于没说...一个屁例子都没有
空中的花园
By [青菜] at 2006-10-9 9:04:37
By [sac] at 2006-10-22 22:58:56
txt文件默认打开工具是nodepad,另存为utf-8后这个notepad工具会在文件头部强行添加文件utf-8 bom。 会破坏文件原有的内容,如果你的文件内容全部是ascii,大可不必另存为utf-8,因为utf-8编码包括了ascii。即使你要存成utf-8也要存成无bom的格式,可以用UE 11.0做到
By [呵呵] at 2006-12-23 18:28:02
个人认为还是有必要使用BOM的
By [mk521] at 2008-3-30 11:03:25
BOM目前不能用于PHP开发
By [guest] at 2008-7-1 9:16:27
还是不明白。。。。晕
By [CSS] at 2009-5-18 13:59:07
要屁例子的那位,我给你放一个,用dedecms的utf-8编码版本的时候,由于页面大部分会include的页头页脚,所以一个页面最终可能包含多个bom签名,这会导致生成的页面在IE里呈现出顶部的一行空白,用文本工具打开文件的16进制查看,会看到2-4个字节的乱码或者空白,知道了细节,这个屁例子的味道应该知道了吧
By [要屁例子的那个] at 2011-1-18 11:28:52


Post a Comment
呢称: 验证码: 
禁止笑脸转换 禁止UBB | 缩放输入框:6 5 | [Ctrl+Enter提交](1000个字符限制)