2009-09-02 64 views
3

例如,将中文文本(GB2312)粘贴到html页面的文本框(或文本区域)中,并且发布表单。在服务器端,是否有任何方法可以检测到这个字符集?如何检测字符集编码?

如果将属于不同字符集的文本粘贴到文本框中,该检测行为如何?

回答

0

网页浏览器在发布数据时应发送包含编码的内容类型。

我认为将文本看作“只是文本”(没有任何特定的编码)是有帮助的,直到编码为需要。因此,浏览器不应该关心最初生成文本时使用的编码(如果有的话)(例如,如果它是从文件复制并粘贴的,则文件的编码无关紧要)。它决定将它发布到服务器时使用哪种编码,显然要确保它是一种涵盖所有需要发送的字符的编码。

+0

(如果浏览器发送内容类型)我应该检查哪个参数来获取编码? 检测在服务器端非常重要,可以将不同类型的所有文本(而不是字符)转换为特定的编码(比如UTF-8)。 – Krishna 2009-09-02 16:32:19

+1

使用Content-Type头 - 应指定使用的字符编码(用于文本数据)。但是,您并未将文本*转换为特定编码,而是将其从编码形式转换为字符。 – 2009-09-02 16:45:24

+0

我没有在标题中找到编码类型。假设浏览器将原始数据发布到服务器,是否有任何检测编码的傻瓜式方法?还是更多的是一个聪明的猜测工作? – Krishna 2009-09-03 18:27:27

2

你需要告诉浏览器加入一个接收字符=“UTF-8”(或类似)属性的形式使用何种编码。 Apparently this defaults to the character set of the page,但我不会指望这一点。浏览器不会告诉你它在提交表单时使用了什么编码,所以你需要假设它使用了你告诉它的那个编码。