发送请求时转换特殊字符

Special characters are converted when sending a request

所以我在 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)

经典编码ASP

在 Classic 中使用编码时 ASP 有一个您需要遵循的清单;

  1. ASP 页面是否使用所需的编码保存?如果要使用 UTF-8,需要先使用 UTF-8 编码保存页面。
  2. ASP 预处理器是否知道使用特定编码处理 ASP 页面?您可以通过在 ASP 页面中指定 Response.CodePageResponse.Charset 来实现。
  3. 将编码数据发送给第 3 方时,您会告诉他们期望什么吗?例如,当发送 JSON 时,Content-Type header 很重要,但指定内容编码方式的 charset 参数也很重要。

    Call HttpReq.setRequestHeader("Content-Type", "application/json; charset=utf-8")
    Call HttpReq.Send(mandrillData)
    

有用的链接