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