在Firefox和IE中使用特殊的Chars,浏览器编码的方式不同

时间:2009-10-29 19:50:21

标签: javascript firefox encoding internet-explorer utf

我有一个多语言网站,允许用户输入文本来搜索表单字段,但文本在前往后端之前会通过Javascript。

像“欢”这样的特殊字符在Firefox中正确处理,但在任何版本的IE中都没有。

有人可以帮我理解发生了什么吗?

谢谢!

3 个答案:

答案 0 :(得分:2)

您可能会发现将accept-charset属性添加到表单中很有用。这为浏览器指定了服务器接受的字符集。你的JS应该遵循这个并以那种格式发送它。

其他可能影响IE处理字符编码方式的事情:

  • 指定正确的doctype(即标准与“合规”模式)。
  • 服务器发送的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编码。