Asp.net 编码、网页和utf8?

Asp.net 编码、网页和utf8?,asp.net,.net,html,encoding,utf-8,Asp.net,.net,Html,Encoding,Utf 8,我已经知道utf代表“我如何存储它”,它有好处,因为它有一个可变的长度,可以用于web Q#1 1) 当我宣布 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 是给你的吗 html文件本身如何存储在我的硬盘中 或者-应该如何将文档传输到客户端(文档中的每个字符都将作为utf 8字符下载?) 或者-当用户填写表单并提交时-浏览器应如何将表单输入+html中的每个字符传输到服务器

我已经知道utf代表“我如何存储它”,它有好处,因为它有一个可变的长度,可以用于web

Q#1

1) 当我宣布

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

是给你的吗

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

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

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

Q#2


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

字符集的
内容类型的声明是客户端接收到的文本编码的字符集的指示符。无论使用何种编码,无论是存储原始字节和字符集声明,还是将文本解码为中性字符集,客户端都应该对文档采取适当的操作。

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

根据,页面的内容类型也会影响浏览器在从页面发布表单时用于编码数据的字符集


问题2。好问题。我相信字符集仍然很难理解,所以编码与开发人员定义的头不匹配是很正常的。旧版应用程序可能无法写入UTF-8。当UTF-8中的等效字符占用更多字节时,使用特定的8位字符集也可以节省少量字节。例如,欧元符号可以在Windows-1252中使用8位表示,但在UTF-8中使用24位表示?我不明白你答案的最后一部分。客户端负责告诉服务器在提交过程中使用了什么字符集。最后一部分可以简化为:“2.谁在乎呢。不管使用什么编码,客户机都有责任处理它。”难道客户机不应该发送它附带的相同字符集吗?我的意思是,客户端可以获得ut8字符集页面并发送其他内容吗?任何人都可以发送任何带有任何字符集的内容,只要他们告诉另一方他们在使用什么。HTML Web表单使用与包含页面相同的字符集提交数据,除非
标记明确说明了不同的字符集。您应该读和。因此,当我在HTML
content=“text/HTML;charset=utf-8”
中写入时,我必须将文件也保存在HD中作为utf8?如果我把文件寄给你呢?您(或您的计算机)如何理解字节(我的意思是utf8)?@royinamir实际上,标记是描述文件编码(字节到字符的映射)的元数据。正如我所说的,没有可靠的检测方法,因此标签可以让浏览器正确显示字节。浏览器将查找此标记并相应地调整字符集。小问题:硬盘上是否有表示文件的字节。windows是否可以识别什么是编码?(根据存储在HD上的字节数)不可能100%确定文件的字节编码是什么。文件开头的BOM表将是一个很好的指示,但否则您只需进行有根据的猜测。有许多开源工具和库,它们可以根据提示对编码进行精确猜测。例如,多字节UTF-8序列是非常独特的。因此,如果计算机可以知道编码的操作系统,为什么我还要在html中指定它?????