Viv*_*ath 3 java ajax jquery character-encoding
我的编码设置为ISO-8859-1.
我正在使用jQuery.ajaxservlet 进行AJAX调用.URL(在jQuery序列化之后)最终看起来像这样:
https://myurl.com/countryAndProvinceCodeServlet?action=getProvinces&label=%C3%85land+Islands
实际的标签值是Åland Islands.当这涉及到servlet时,我收到的值是:
Ã\u0085land Islands
但这不是我想要的.我希望它能被解码Åland Islands.我尝试了很多东西(设置scriptCharset,试图转换字符串使用getBytes(),但似乎没有任何工作).
Servlet规范的一个不幸的部分是用于解码查询参数的编码不能由servlet本身设置.相反,它留作服务器的配置问题.
这使得国际化网站的部署变得非常痛苦,特别是因为Servlet规范选择的默认编码不是最可能有用的UTF-8,而是ISO-8859-1.(实际的ISO-8859-1,甚至不是Windows代码页1252,这是编码浏览器在被告知使用ISO-8859-1时会真正提交的!)
因此,如何重新配置这是一个服务器问题.对于Tomcat,它需要一些摆弄server.xml.
如果您无权访问服务器配置,则替代方法是获取每个提交的参数名称/值并对其进行重新编码.幸运的是,ISO-8859-1保留了作为相同数字的Unicode代码点提交的每个字节,因此要将字符串转换为首先将其正确解释为UTF-8,您可以简单地将每个字符串编码为一个字节使用ISO-8859-1的数组,然后使用UTF-8将字节解码回字符串.当然如果有人然后重新配置服务器使用UTF-8你就会遇到问题......
| 归档时间: |
|
| 查看次数: |
2550 次 |
| 最近记录: |