我有一个多语言网站,允许用户输入文本来搜索表单字段,但文本在进入后端之前会通过 Javascript。
像“欢”这样的特殊字符在 Firefox 中得到了正确处理,但在任何版本的 IE 中都没有。
有人可以帮我理解发生了什么吗?
谢谢!
我有一个多语言网站,允许用户输入文本来搜索表单字段,但文本在进入后端之前会通过 Javascript。
像“欢”这样的特殊字符在 Firefox 中得到了正确处理,但在任何版本的 IE 中都没有。
有人可以帮我理解发生了什么吗?
谢谢!
accept-charset
您可能会发现将属性添加到表单很有用。这向浏览器指定服务器接受的字符集。你的 JS 应该遵循这个并以这种格式发送。
其他一些可能会影响 IE 处理字符编码方式的因素:
Content-Type
服务器发送的header;我相信大多数浏览器都遵循元标记上的标头,因此如果您的服务器指定 ISO-8859-1 并且您的页面指定 UTF-8 会有些混乱。Content-Type
;一些“现代”浏览器(特别是 FF)接受 utf8 作为 utf-8 的别名。IE 没有,并且回退到 ISO-8859-1。(这来自痛苦的个人经历!;)字符集是一个真正的痛苦。您需要确保所有组件从前到后都在使用相同的“语言”——包括存储和通信。
跟踪正在发生的事情的下一步是让您的服务器代码记录您的 JS 请求的标头,以确保编码与您期望的匹配。
某些浏览器的默认设置不同,请通过使用元标记进行编码来强制为您的站点设置默认编码。就像这里:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
UTF-8 可能不是您想要的,但最有可能。测试,在firefox中查看->字符编码,手动设置。通过知道哪个有效,您将知道将其设置为哪个。此处的模式列表:http: //tlt.its.psu.edu/suggestions/international/web/tips/declare.html 更多:http: //tlt.its.psu.edu/suggestions/international/bylanguage /index.html
确保您的字符和页面都使用 UTF-8 编码。