删除了Parse.com/Nodejs http-request特殊字符

时间:2015-08-13 10:47:15

标签: javascript node.js encoding parse-platform amazon-mws

我通过parse.com(基于nodejs构建)访问amazons MWS-Api,并且他们的flatfile-reports(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)
    }

我收到的响应标题如下:

  {
  "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”。或者,我对amazons scratchpad(https://mws.amazonservices.de/scratchpad/index.html)也有同样的问题,根据MWS-Support,它应该正确显示特殊字符。 感谢您提前提供任何帮助。

edit1:此外,我的同事在完全不相关的项目(不同的数据源和所有内容)中与解析有着非常相似的问题。在python中进行了一些实验后,我非常确定他的数据源是用latin1编码的,而不是utf8,这似乎导致了这个问题。有哪种方法可以解析latin1或CP1252编码?

2 个答案:

答案 0 :(得分:1)

亚马逊的支持证实,这是他们最终的错误,而且据我所知,修复了它。

答案 1 :(得分:0)

您已经请求parse.com以utf-8发送数据。

注意以下几点:

    "Content-Type": "application/x-www-form-urlencoded; charset=utf-8",
    "Accept-Charset": "utf-8"

将这些值更改为latin1可能会有效,如果您可以与您的同事相提并论。

然而,parse.com论坛上的this问题可能会对您的问题有所了解。它可能是客户(您)的问题。你有没有尝试改变你方的编码?