NOT 是否有充分的理由在日常开发中使用UTF-8作为编码?
IE:在<head>...</head>
中使用以下标记是否有任何缺点?
<meta charset="utf-8">
答案 0 :(得分:3)
有没有充分的理由不在日常开发中使用UTF-8作为编码?
不是真的。 UTF-8和日本的旧版网络邮件服务以及一些仍然偏爱Windows ANSI代码页的狡猾的文本编辑器都有不太好的利基,但它们正在慢慢消失,大多数人都可以忽略它们。 / p>
有一些法律问题,比如中国软件产品必须支持令人讨厌的旧GB18030,但这并不排除UTF-8支持,或者影响网站,因为我理解它。
虽然其他编码可以比UTF-8更小,但通常没有足够的差别来照顾或抵消其余Unicode曲目的丢失。 UTF-16仍然可以涵盖所有内容,理论上对于非ASCII BMP文本来说可能更小......但对于HTML来说,总是被包括标签和空格在内的所有ASCII文本的额外长度所淹没。另外,UTF-16在网络上效果不佳。
在任何情况下,你都希望能够压缩你的页面,即使是那么小的差异也会接近空白。
<meta charset="utf-8">
这是一种花哨的现代方式,但是为了在旧浏览器中提供更广泛的支持,我仍然会这样做:
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
正如这提示的那样,你实际在做的是伪装一个带有charset in的HTTP头。所以你还需要确保没有真正的 HTTP Content-Type .. .charset参数,因为真正的标题参数胜过HTML'meta'-hack。 Apache AddDefaultCharset
指令有时不明智地用于为您提供您可能不需要的charset
。
答案 1 :(得分:1)
这实际上取决于您在页面上显示的字符。
这是SO联合创始人Joel S撰写的一篇好文章:http://www.joelonsoftware.com/articles/Unicode.html
答案 2 :(得分:0)
它并不重要,因为它在大多数情况下会被忽略,通常会使用HTTP Content-Type标头。我也认为在旧版浏览器中会被忽略。