Parse.com/Nodejs http-request 特殊字符已删除
Parse.com/Nodejs http-request special characters removed
我正在通过 parse.com(基于 nodejs 构建)访问亚马逊 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)
}
我收到的response-headers看起来如下:
{
"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:另外,我的一个同事在一个完全不相关的项目中有一个非常相似的解析问题(不同 data-source n 一切)。在 python 中进行了一些试验后,我相当确定他的数据源是用 latin1 编码的,而不是 utf8,这似乎是导致问题的原因。在解析中强制执行 latin1 或 CP1252 编码的任何方式?
您已经请求 parse.com 以 utf-8 格式向您发送数据。
注意这些行:
"Content-Type": "application/x-www-form-urlencoded; charset=utf-8",
"Accept-Charset": "utf-8"
将这些值更改为 latin1 可能会奏效,前提是您可以与同事进行比较。
但是,parse.com 论坛上的 this 问题可能会阐明您的问题。这可能是客户端(您的)方面的问题。您是否尝试过更改您一方的编码?
Amazon 支持人员确认这是他们端的错误,据我所知,已修复它。
我正在通过 parse.com(基于 nodejs 构建)访问亚马逊 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)
}
我收到的response-headers看起来如下:
{
"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:另外,我的一个同事在一个完全不相关的项目中有一个非常相似的解析问题(不同 data-source n 一切)。在 python 中进行了一些试验后,我相当确定他的数据源是用 latin1 编码的,而不是 utf8,这似乎是导致问题的原因。在解析中强制执行 latin1 或 CP1252 编码的任何方式?
您已经请求 parse.com 以 utf-8 格式向您发送数据。
注意这些行:
"Content-Type": "application/x-www-form-urlencoded; charset=utf-8",
"Accept-Charset": "utf-8"
将这些值更改为 latin1 可能会奏效,前提是您可以与同事进行比较。
但是,parse.com 论坛上的 this 问题可能会阐明您的问题。这可能是客户端(您的)方面的问题。您是否尝试过更改您一方的编码?
Amazon 支持人员确认这是他们端的错误,据我所知,已修复它。