0

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

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

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

谢谢!

4

3 回答 3

2

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

其他一些可能会影响 IE 处理字符编码方式的因素:

  • 指定正确的文档类型(即标准与“合规”模式)。
  • Content-Type服务器发送的header;我相信大多数浏览器都遵循元标记上的标头,因此如果您的服务器指定 ISO-8859-1 并且您的页面指定 UTF-8 会有些混乱。
  • 标头的格式Content-Type;一些“现代”浏览器(特别是 FF)接受 utf8 作为 utf-8 的别名。IE 没有,并且回退到 ISO-8859-1。(这来自痛苦的个人经历!;)

字符集是一个真正的痛苦。您需要确保所有组件从前到后都在使用相同的“语言”——包括存储通信。

跟踪正在发生的事情的下一步是让您的服务器代码记录您的 JS 请求的标头,以确保编码与您期望的匹配。

于 2009-10-31T00:28:30.727 回答
1

某些浏览器的默认设置不同,请通过使用元标记进行编码来强制为您的站点设置默认编码。就像这里:

<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

于 2009-10-29T23:34:28.253 回答
0

确保您的字符和页面都使用 UTF-8 编码。

于 2009-10-29T20:29:12.223 回答