gpt4 book ai didi

java - jQuery和Java之间的编码问题

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:51:06 28 4
gpt4 key购买 nike

我的编码设置为 ISO-8859-1。

我正在使用 jQuery.ajax 对 servlet 进行 AJAX 调用。 URL(在它被 jQuery 序列化之后)最终看起来像这样:

https://myurl.com/countryAndProvinceCodeServlet?action=getProvinces&label=%C3%85land+Islands

实际标签值为Åland Islands。当涉及到 servlet 时,我收到的值是:

Ã\u0085land 群岛

但这不是我想要的。我希望它被解码为 Åland Islands。我已经尝试了很多东西(设置 scriptCharset,尝试使用 getBytes() 转换字符串,但似乎没有任何效果)。

最佳答案

Servlet 规范中一个不幸的部分是,用于解码查询参数的编码不能由 servlet 本身设置。相反,它留作服务器的配置问题。

这使得国际化网站的部署变得非常痛苦,特别是因为 Servlet 规范选择的默认编码不是最有可能有用的 UTF-8,而是 ISO-8859-1。 (实际的 ISO-8859-1,甚至不是 Windows 代码页 1252,这是当被告知使用 ISO-8859-1 时浏览器将真正提交的编码!)

那么怎么重新配置这是服务器的问题。对于 Tomcat,它需要 some fiddling with the server.xml .

如果您无权访问服务器配置,另一种方法是获取每个提交的参数名称/值并重新编码它们。幸运的是,ISO-8859-1 将提交的每个字节都保留为相同编号的 Unicode 代码点,因此要转换字符串,就好像它首先被正确解释为 UTF-8,您可以简单地将每个字符串编码为一个字节array 使用 ISO-8859-1,然后使用 UTF-8 将字节解码回 String。当然,如果有人随后将服务器重新配置为使用 UTF-8,那你就有问题了……

关于java - jQuery和Java之间的编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4028290/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com