【发布时间】:2015-08-01 16:34:48
【问题描述】:
在 Dreamweaver 中,我有“包含 Unicode 签名 (BOM)”选项。
如果我选中此框并将文件保存为 HTML 文件,则在 Web 浏览器中查看时看起来不错。如果不是,它会给我一些奇怪的瑞典字母符号,比如 åäö。
如果我使用标题响应“Content-Type: text/html; charset=utf-8”为这个 HTML 文件提供奇怪的字母,它仍然会给我奇怪的符号。
Q1)这是否意味着它不是UTF-8编码的文件(没有BOM显示奇怪符号的文件)?
Q2) 是什么让文件采用 UTF-8 编码,仅仅是 Unicode 签名 (BOM) 吗?
Q3)我应该还是不应该在我的文件(HTML、Javascript、CSS、PHP)中添加包含 Unicode 签名 (BOM)?
我知道我可以在 HTML 代码中添加 <meta charset="UTF-8"> 或在我的 .htaccess 中键入 AddDefaultCharset UTF-8。我只是认为最佳解决方案是让标题响应说“它是一个 UTF-8 编码文件”,然后实际上也提供一个 UTF-8 编码文件。没有别的了。
Q4) 我认为 HTML 文件是纯文本文件。这些文件中还隐藏了哪些其他信息?如何阅读这些信息?
【问题讨论】:
-
您需要了解 ASCII 和 Unicode 之间的区别——这可能会回答您的所有问题。 stackoverflow.com/questions/19212306/…。只需谷歌“ASCII 和 Unicode 之间的区别”并开始阅读......
-
来自文章:“但是元标签确实必须是 部分中的第一件事,因为一旦网络浏览器看到这个标签,它就会停止解析页面并开始使用您指定的编码重新解释整个页面后结束。”提供一个 Content-Type http 标头告诉它是一个 UTF-8 编码文件并提供一个正确的 UTF-8 编码文件不是更好吗?那么浏览器就不必重新开始了...如何确定文件是 UTF-8 编码的(无需检查来自服务器的 HTTP 标头响应或查找内联元标记)?
标签: html utf-8 byte-order-mark