我遇到了经典ASP的问题。使用XMLHttp.send
发送数据时编码错误。响应是PDF文件,但“ÆØÅ”出错,“Ø”读作“øy”。这就像是从UTF-8到ISO-8859-1的转换错误,但它现在应该是ISO-8859-1。我在页面的顶部有<%@CODEPAGE="28591"%>
,在XML文件中有ISO-8859-1
作为编码,我检查了文件,因此它是有效的ISO-8859-1。我无法访问我发送此数据的服务器,但我将其修复为VB6程序,该程序使用相同的逻辑:
aPostBody = StrConv(strBody, vbFromUnicode)
WinHttpReq.SetTimeouts 100000, 100000, 100000, 1000000
WinHttpReq.Send aPostBody
在C#程序中也使用与
相同的逻辑// ISO-8859-1
byte[] bytes = Encoding.GetEncoding(28591).GetBytes(data);
但是在ASP经典中我需要一些帮助来找到一种方法来将字符串上的编码更改为ISO-8859-1。
答案 0 :(得分:3)
答案 1 :(得分:3)
您是否尝试过使用Response.Charset并将其设置为:
<% Response.Charset="ISO-8859-1"%>
答案 2 :(得分:2)
检查.ASP文件的编码以及#include
附带的所有.ASP文件。
当我在VS中创建新的.ASP文件并使用UTF-8进行编码时出现问题。其他人包含此文件,文件编码“覆盖”所有其他编码命令。
答案 3 :(得分:0)
AFAIK这是WinHttpReq / XMLHTTPRequest的已知问题,希望有人证明我错了。
答案 4 :(得分:0)
您是否尝试过使用与您正在做的相同的meta
代码?
示例:
Response.Write("<meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1' />")
注意:我使用Response.Write
粘贴spitet,因为如果charset为UTF-8,Visual Studio将尝试使用不同的编码保存文件。
答案 5 :(得分:0)
答案 6 :(得分:0)
我在ASP和Javascript上都使用过这个组件,但是在javascript上我找到了这个问题的解决方案:http://squio.nl/blog/2006/06/27/xmlhttprequest-and-character-encoding/
答案 7 :(得分:0)
解决方案:
Response.AddHeader "Content-Type", "text/html;charset=UTF-8"
Response.CodePage = 65001
Response.CharSet = "UTF-8
达成: https://pt.stackoverflow.com/questions/80886/encoding-asp-cl%C3%A1ssico/81418#81418