html保存成utf8无bom乱码?

2012-12-12 15:51:40 +08:00
 ivanlw
特意查了下有/无bom是什么
http://wenwen.soso.com/z/q118420256.htm

发现无bom才应该是优先考虑的正常情况,但是用sublime 2存成无bom打开就是乱码,换成有bom就正常了……Mac平台

是我理解错了吗?
4897 次点击
所在节点    问与答
9 条回复
vampirekiss
2012-12-12 16:02:27 +08:00
我的 sublime 2 默认就是 utf-8 without bom 。 也没乱码. Mac平台
timonwong
2012-12-12 16:04:56 +08:00
HTML5:
meta charset="UTF-8"


meta http-equiv="Content-Type" content="text/html; charset=utf-8"
lianghai
2012-12-12 16:16:56 +08:00
你肯定搞错了些什么。
zythum
2012-12-12 16:21:32 +08:00
utf-8无bom
有bom页面会出各种问题。
ivanlw
2012-12-12 17:54:33 +08:00
@timonwong 是要指定这句存成无bom才会生效么
timonwong
2012-12-12 18:09:27 +08:00
@ivanlw
HTML不能有BOM,UTF8 with BOM会多出3个BOM字节,可能会造成解析问题:
http://www.w3.org/International/questions/qa-utf8-bom.en

charset要显式声明,这个要么在服务器上做(HTTP协议的Content-Type头),要么就在页面中做(一般在页面中做,避免有HTML是其它charset的情况)。

否则的话浏览器会猜测页面编码(或者直接使用系统当前代码页),造成的结果是不可预料的。
90blog
2012-12-12 18:29:52 +08:00
php会默认输出BOM这三个字符,导致乱码,所以php必须保存成无BOM
http://www.90blog.org/archives/1504.html
honk
2012-12-12 18:33:06 +08:00
ivanlw
2012-12-17 13:10:41 +08:00
@timonwong
嗯~自己做了最后的测试……
1.包含<meta http-equiv="content-type" content="text/html; charset=UTF-8" />的文件,无论存成有bom无bom,现实中文都正常
2.不包含charset声明的,存成无bom居然是乱码,存成有bom才会是正常的中文……

第一点是按照您说的、正确的,肯定没问题了;但是第二点实在是太奇葩了……

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/54722

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX