首先它是一个用户脚本,我无法更改服务器端编码。
我的问题是,当使用 encodeURIComponent() 编码 POST 参数(稍后通过 xhr.setRequestHeader 发送)时,字符以 utf-8 编码,但服务器需要接收 iso-8859-1 数据。是否有 encodeURIComponent() 的替代方法可以在 iso-8859-1 中编码?
.
为了确保你理解,这里有一个例子:
网站上的一个经典表单发送é
是这样的:yournewmessage:%E9
Ajax 通过 xhr.send('yournewmessage='+encodeURIComponent('é'))
发送:yournewmessage:%E9%80%80
服务器需要前者。感谢任何能帮助我的人。
最佳答案
所以,我已经弄清楚了这个问题。我所做的是寻找 utf-8 和 iso-8859-1 之间的等价关系,我发现是在 utf-8 和 cp1252 (Windows-1252) 之间,所以有两个转换,utf-8 到 cp1252 和 cp1252 到 iso- 8859-1(这两个有很多相似之处)
丑陋的代码、留下的法语注释和不雅的解决方案,但当我实际上找到了一个可行的解决方案时,看到这个问题没有得到答复,我感到很遗憾。
关于javascript - 通过 AJAX POST 请求发送 iso-8859-1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8545440/