我正在通过 parse.com(基于 nodejs 构建)访问亚马逊 MWS-Api,并且他们的平面文件报告(getreport 端点)有问题。所有特殊字符(ä、ö、ü)都被简单地删除了。根据 MWS-Support,他们正在使用 CP1252-Encoding。这是请求代码。
// Parse.Cloud.httpRequest is parses version of the nodejs http-module
Parse.Cloud.httpRequest({
url: "https://mws.amazonservices.de/?",
method: "POST",
headers: {
"Content-Type": "application/x-www-form-urlencoded; charset=utf-8",
"Host": "mws.amazonservices.de",
"x-amazon-user-agent": "MyUserAgent(Language=Javascript)",
"Accept-Charset": "CP1252"
},
body: queryString
success: function(resp){
response.success(resp)
}
},
error: function(err){
response.error(err)
}
我收到的响应 header 如下所示:
{
"Connection": "close",
"Content-Length": "395828",
"Content-MD5": "Xw8KYGqESc7u4TTzgcbT/g==",
"Content-Type": "text",
"Date": "Thu, 13 Aug 2015 10:21:00 GMT",
"Server": "AmazonMWS",
"Vary": "Accept-Encoding,User-Agent",
"x-amz-request-id": "xxxxx",
"x-mws-quota-max": "60.0",
"x-mws-quota-remaining": "58.0",
"x-mws-quota-resetsOn": "2015-08-13T10:38:00.000Z",
"x-mws-request-id": "xxxxx",
"x-mws-response-context": "C0ywPcTe0K9qESsoz4OzZX9oRJMDuYR9vvk5MfN3KKOGEnyWgSZlOQDixINemnwLVZl0DjXEdrY=",
"x-mws-timestamp": "2015-08-13T10:21:01.186Z"
}
澄清一下,特殊字符没有被乱码(没有“�”或类似的东西)。 “Für”被简单地接收为“Fr”。奇怪的是,我对亚马逊暂存器(https://mws.amazonservices.de/scratchpad/index.html)有同样的问题,根据 MWS-Support,它应该正确显示特殊字符。 提前感谢您的帮助。
edit1:此外,我的一位同事在一个完全不相关的项目(不同的数据源和所有内容)中遇到了与解析非常相似的问题。在 python 中进行了一些试验之后,我相当确定他的数据源是用 latin1 编码的,而不是 utf8,这似乎是导致问题的原因。在解析中强制执行 latin1 或 CP1252 编码的任何方法?
最佳答案
Amazon 支持人员确认这是他们端的错误,据我所知,已修复它。
关于javascript - Parse.com/Nodejs http-request 特殊字符已删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31986059/