如何检测字符集编码?

3
例如,当将中文文本(GB2312编码)粘贴到HTML页面的文本框(或文本区域)中并提交表单时,服务器端是否有任何手段可以检测到该字符集?
如果在文本框中粘贴属于不同字符集的文本,这种检测会如何行事?
3个回答

2

您需要通过向表单添加 accept-charset="UTF-8"(或类似)属性来告诉浏览器使用哪种编码方式。 显然,默认情况下会使用页面的字符集,但我不会指望这一点。当浏览器提交表单时,它不会告诉您使用了哪种编码方式,因此您需要假定它使用了您告诉它要使用的编码方式。


0

0

当浏览器提交数据时,应该发送包括编码的内容类型。

我认为将文本视为“纯文本”(没有特定的编码)直到需要编码时会很有帮助。因此,浏览器不应关心用于最初生成文本的编码(例如,如果它是从文件中复制和粘贴的,则文件的编码无关紧要)。它在将其发布到服务器时决定使用哪种编码,显然要确保它是覆盖所有需要发送的字符的编码。


如果浏览器发送了content-type,我应该检查哪个参数来获取编码?在服务器端进行检测非常重要,以将不同类型的所有文本(而不是字符)转换为特定的编码(例如UTF-8)。 - Krishna
1
使用Content-Type头 - 应该指定所使用的字符编码(用于文本数据)。但是你不是将文本转换为特定的编码 - 而是将其从编码形式转换为字符。 - Jon Skeet
我在头部信息中没有找到编码类型。如果浏览器向服务器发送原始数据,有没有一种绝对可靠的方法来检测编码?还是更多地依赖于智能猜测? - Krishna

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接