HTML编码°度符号额外空间

时间:2010-09-27 22:52:16

标签: javascript html encoding localization internationalization

  1. <div id="a">°F</div>
  2. $.get("http://blah.com/go",{'TU':$('#a').text()});
  3. IIS服务器日志显示以下参数:
    99.5%的时间:TU =%C2%B0F
    0.5%的时间:TU =%C2%B0 + F
  4. 服务器随后崩溃,因为它不知道'°F'是什么。不可否认,其中一个缺点就是我们正在从DOM中删除文本。发送到我们的服务器。这是我怀疑问题的地方,但我想了解更多。
  5. 其他信息:0.5%的时间都是IE8&amp;铬。所有知识产权都地理定位到哥伦比亚大学,这看起来像是一个本地问题,但我们无法复制它。

    想法?

2 个答案:

答案 0 :(得分:1)

所以问题是有时候°F之间有一个空格,那个空间被翻译成+,服务器不接受它?如果是这样,为什么不在发送之前去除空间呢?

$.get("http://blah.com/go",{'TU':$('#a').text().replace(' ', '')});
// Or a more granular fix
$.get("http://blah.com/go",{'TU':$('#a').text().replace(/°\sF/, '°F')});

答案 1 :(得分:0)

如何将文本放入div中?您应该在检查服务器值之前输出它。我不认为您可能会获得相同文本的不同编码。这可能与你如何将它放入页面有关。

在获取查询字符串之前,还尝试在服务器上设置页面编码,可能是不同的浏览器使用不同的编码。 UTF-8是w3.org建议的编码。在Java中,您必须确保在任何从客户端读取任何内容的调用之前设置编码。