Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 这是什么编码?_Asp.net_Form Submit - Fatal编程技术网

Asp.net 这是什么编码?

Asp.net 这是什么编码?,asp.net,form-submit,Asp.net,Form Submit,如果我有一个设置为UTF-8的HTML页面。 然后我在表单中输入编码为big5的汉字并提交。 服务器端的编码是什么? 是否自动转换为UTF-8? 或者它是如何工作的?? 谢谢 补充1: 实际上我真的不确定,为什么浏览器可以决定使用哪种编码?因为编码是由IME生成的。例如:我用来输入汉字的工具,对吗 补充2: 如果一切都像“Michael Madsen”在下面的回复中所说的那样,那么asp.net如何处理这个问题,这样无论我如何在表单中输入字符,它都不会被破坏,但jsp不会被破坏?如果浏览器愿意,

如果我有一个设置为UTF-8的HTML页面。 然后我在表单中输入编码为big5的汉字并提交。 服务器端的编码是什么? 是否自动转换为UTF-8? 或者它是如何工作的?? 谢谢

补充1:
实际上我真的不确定,为什么浏览器可以决定使用哪种编码?因为编码是由IME生成的。例如:我用来输入汉字的工具,对吗

补充2:
如果一切都像“Michael Madsen”在下面的回复中所说的那样,那么asp.net如何处理这个问题,这样无论我如何在表单中输入字符,它都不会被破坏,但jsp不会被破坏?

如果浏览器愿意,它可以在big5中发送帖子,服务器应该能够处理这个问题。但是你说的“我在表格中输入编码为big5的汉字”是什么意思?当您输入字符时,由浏览器决定使用哪种编码,当然?

浏览器使用Unicode-当在其中键入字符时,它们在内部存储为Unicode。提交表单时,它以任何适当的编码输出字符-通常是页面的编码

如果您谈论的是从Big5文档复制/粘贴,那么在将其插入剪贴板时,它将已经转换为Unicode,甚至在加载文档时,这取决于您的编辑器


如果您正在谈论使用某种输入法输入字符,那么这个问题有点错误,因为您的输入法应该专门使用Unicode,因此不涉及Big5编码。如果是的话,那么在与Unicode进行转换的过程中会有一些层,所以不管这一部分是什么,浏览器永远不知道源编码。

实际上我真的不确定,为什么浏览器可以决定使用哪种编码?因为编码是由IME生成的。例如:我用来输入汉字的工具,对吗?那只是将文本数据以某种适当的方式输入浏览器。重要的是文本值,而不是所涉及的编码。这取决于操作系统、浏览器和输入法,它们可能以多种方式发生——但只要浏览器知道要传输的Unicode字符,它就可以决定使用它喜欢的任何编码(并将其放在标题中)。我们可以看到的是“文本值”,但计算机只能像十六进制值一样识别编码,对吗?因此,如果您使用IME输入字符,并生成big5字符,那么浏览器会自动将其转换为UTF-8吗?为什么?系统能否自动将big5中的字符串转换为utf-8?是。操作系统知道如何从每个编码中的值转换为实际字符,当操作系统对其进行操作时,将使用操作系统的内部编码来表示实际字符。这就是为什么遗留应用程序仍然在Windows上工作的原因——Windows在内部使用UTF-16,但是使用特定语言代码页的遗留应用程序可以调用兼容层,该层基本上只在发送到函数的文本转换后调用API函数的Unicode版本(当然,从API函数返回的文本也会以另一种方式转换)。因为浏览器支持Unicode,所以它可以理解和处理操作系统提供给它的内容,而无需转换。一旦通知它提交表单,它会将系统编码转换为服务器请求的编码,并发送转换后的文本。是的,我不知道你如何知道这一点,但如果可以,请不要请告诉我如何证明这一点?看看Windows实用程序AppLocale--这允许您运行单个应用程序,就像非Unicode语言不是当前系统设置一样。因为所有非Unicode应用程序都使用相同的*a(非Unicode)在Windows API函数的版本中,这些函数中必须有正确处理不同代码页的代码。要做到这一点,即使是最简单的方法也是转换输入并调用*W(Unicode)版本。