通过AJAX POST请求发送iso-8859-1?

时间:2011-12-17 14:36:22

标签: javascript ajax

首先它是一个用户脚本,我不能改变服务器端编码。

我的问题是当使用encodeURIComponent()编码POST参数(稍后通过xhr.setRequestHeader发送)时,字符以utf-8编码,但服务器需要接收iso-8859-1数据。是否有一个encodeURIComponent()的替代品,它将在iso-8859-1中编码?

为了确保您理解,这是一个例子:

网站上的经典表单发送é,如下所示:yournewmessage:%E9

通过xhr.send('yournewmessage='+encodeURIComponent('é'))发送的Ajax发送:yournewmessage:%E9%80%80

服务器需要前者。感谢任何可以帮助我的人。

1 个答案:

答案 0 :(得分:0)

所以,我已经发现了这个问题。我所做的是搜索utf-8和iso-8859-1之间的等价,我发现在utf-8和cp1252之间(Windows-1252)所以有两个转换,utf-8到cp1252和cp1252到iso- 8859-1(这两个有很多相似之处)

http://pastebin.com/jTDqR2PQ

丑陋的代码,用法语留下的评论,以及不合理的解决方案,但是当我真正找到一个有效的解决方案时,我觉得这个问题没有被发现。