【问题标题】:Encoding and Webpages and utf8?编码和网页和utf8?
【发布时间】:2012-12-25 21:43:17
【问题描述】:

我已经知道 utf 是“我如何存储它”的,它的好处是它有一个可变长度,这对 web 很有用。

Q#1

1) 当我声明时

<meta http-equiv="Content-Type"    content="text/html; charset=utf-8" />

是为了

  • 如何 html 文件本身存储在我的硬盘中?

  • 或者 - 如何将文档传输到客户端(文档中的每个字符都将作为 utf 8 字符下载?)

  • 或者 - 当用户填写表单并提交时 - 如何浏览器应将表单 input+html 中的每个字符传输到服务器

Q#2

2) 如果 utf-8 可以包含所有内容,为什么我有时会看到 charset=windows-1255" ?为什么他们不总是使用utf8 并玩得开心?

【问题讨论】:

标签: asp.net .net html encoding utf-8


【解决方案1】:

Content-Type 字符集的声明是向客户端指示接收到的文本被编码的字符集。客户端应该对文档采取适当的操作,无论使用什么编码,是否存储原始字节和字符集声明,或将文本解码为中性字符集,或诸如此类。

【讨论】:

  • 提交呢?我不明白你答案的最后一部分。
  • 客户端负责告诉服务器在提交过程中使用了什么字符集。最后一部分可以简化为:“2.谁在乎。不管使用什么编码,客户端都负责处理。”
  • 客户端不应该发送它附带的相同字符集吗?我的意思是客户可以获取 ut8 字符集页面并发送其他内容吗?
  • 任何人都可以使用任何字符集发送任何内容,只要他们告诉对方他们正在使用什么
  • 一个 HTML 网络表单使用与包含页面相同的字符集提交数据,除非 &lt;form&gt; 标记明确声明不同的字符集。
【解决方案2】:

第一季度。元内容类型告诉浏览器如何解释从服务器接收到的字节。您可以将文件保存为meta 标记指定的编码。服务器可能会在 Content-Type 标头中设置字符集,但这可能与实际文件不匹配,因为没有 100% 可靠的方法来检测文件的编码。无论字符集如何,文件的字节都传输相同。

根据http://www.w3schools.com/tags/att_form_accept_charset.asp,页面的内容类型也会影响浏览器在从页面发布表单时用来编码数据的字符集。

第二季度。好问题。我相信字符集仍然有很多误解,因此编码与开发人员定义的标头不匹配并不罕见。旧版应用程序可能无法编写 UTF-8。当 UTF-8 中的等效字符占用更多字节时,使用特定的 8 位字符集也会节省一小部分字节。例如,欧元符号在 Windows-1252 中可以使用 8 位表示,但在 UTF-8 中可以使用 24 位

【讨论】:

  • 所以当我写在我的 html content="text/html; charset=utf-8" - 我必须将 file 保存在我的高清 also 为 utf8 吗?如果我把文件发给你呢?您(或您的计算机)如何知道如何解释字节(我的意思是 utf8)?
  • @royinamir 实际上,标签是描述文件编码(字节到字符的映射)的元数据。正如我所说,没有可靠的检测方法,所以标签可以让浏览器正确显示字节。浏览器会寻找这个标签并相应地调整字符集。
  • 小问题:硬盘上是否有代表文件的字节。 windows可以识别什么是编码吗? (根据存储在HD上的字节数)
  • 不可能 100% 确定文件字节的编码方式。文件开头的 BOM 将是一个很好的指示,否则您只需要做出有根据的猜测。有许多开源工具和库,可以根据提示对编码进行评分猜测。例如,多字节 UTF-8 序列非常独特。
  • 那么如果计算机可以知道编码是什么,我为什么还要在html中指定它??????
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-07
  • 2012-06-19
  • 1970-01-01
  • 2014-03-05
相关资源
最近更新 更多