发送请求时会转换特殊字符

时间:2018-02-10 17:14:17

标签: vbscript asp-classic mandrill

所以我在asp经典中实现了mandrill。到目前为止,一切都很好,邮件已发送,但我遇到了问题。当我发送带有特殊字符的参数时,电子邮件中的内容被转换。例如,我发送给mandrill的值为Göran,但在电子邮件中,它已转换为Göran

我试图更改CodePage会话但它没有用。使用ajax jQuery并发送相同的值,电子邮件看起来很好。我是否需要在请求中设置内容

Response.CodePage = 65001
Session.CodePage = 65001
Set HttpReq = Server.CreateObject("MSXML2.ServerXMLHTTP")
HttpReq.open "POST", "https://mandrillapp.com/api/1.0/messages/send-template.json", False
HttpReq.setRequestHeader "Content-Type", "application/json"
HttpReq.send(mandrillData)

1 个答案:

答案 0 :(得分:1)

经典ASP中的编码

在Classic ASP中使用编码时,需要检查一个清单;

  1. 是否使用所需的编码保存ASP页面?如果您想使用UTF-8,首先需要使用UTF-8编码保存页面。
  2. ASP前处理程序是否知道使用特定编码处理ASP页面?您可以通过在ASP页面中指定Response.CodePageResponse.Charset来执行此操作。
  3. 将编码数据发送给第三方时,您是否告诉他们会发生什么?例如,在发送JSON时,Content-Type标头很重要,但charset参数也是如此,以指定内容的编码方式。

    Call HttpReq.setRequestHeader("Content-Type", "application/json; charset=utf-8")
    Call HttpReq.Send(mandrillData)
    
  4. 有用的链接