编码问题经典ASP

时间:2008-12-01 15:53:33

标签: encoding character-encoding asp-classic

我遇到了经典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。

8 个答案:

答案 0 :(得分:3)

尝试:

Session.CodePage = 28591

有一些很好的信息here,我得到了CodePage编号here

答案 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