有没有理由不将HTML编码设置为UTF-8?

时间:2011-12-04 23:38:04

标签: html unicode utf-8

NOT 是否有充分的理由在日常开发中使用UTF-8作为编码?

IE:在<head>...</head>中使用以下标记是否有任何缺点?

<meta charset="utf-8">

3 个答案:

答案 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标头。我也认为在旧版浏览器中会被忽略。