2

我对经典 ASP 有疑问。当我使用XMLHttp.send. 响应是一个 PDF 文件,但是“ÆØÅ”出错了,例如“Ø”被读作“øy”。这就像从 UTF-8 到 ISO-8859-1 的转换错误,但现在应该是 ISO-8859-1。我<%@CODEPAGE="28591"%>在页面顶部和ISO-8859-1XML 文件中的编码,我检查了文件,所以它是有效的 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 的方法。

4

8 回答 8

3

您是否尝试过使用Response.Charset 并将其设置为:

<% Response.Charset="ISO-8859-1"%>
于 2008-12-01T16:45:23.737 回答
3

尝试:

Session.CodePage = 28591

这里有一些很好的信息,我在这里得到了 CodePage 号。

于 2008-12-01T16:06:23.020 回答
2

检查 .ASP 文件的编码以及 .ASP 文件中包含的所有 .ASP 文件#include

当我在 VS 中创建一个新的 .ASP 文件并以 UTF-8 编码时遇到问题。该文件被其他人包含,并且文件编码“覆盖”了所有其他编码命令。

于 2008-12-02T11:28:29.943 回答
0

AFAIK 这是 WinHttpReq / XMLHTTPRequest 的一个已知问题,希望有人证明我错了。

于 2008-12-01T16:49:29.923 回答
0

也请参考:How do I set the character set using XMLHttp Object for a POST in classic ASP?

于 2008-12-02T15:53:33.793 回答
0

我在 ASP 和 Javascript 上都使用过这个组件,但是在 javascript 上我在这里找到了解决这个问题的方法:http: //squio.nl/blog/2006/06/27/xmlhttprequest-and-character-encoding/

于 2009-02-27T11:38:51.287 回答
0

您是否尝试过使用与meta您正在做的事情等效的标签?

例子:

Response.Write("<meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1' />")

注意:我使用 aResponse.Write粘贴吐出字符集,因为例如,如果字符集是 UTF-8,Visual Studio 将尝试使用不同的编码保存文件。

于 2008-12-01T22:00:05.520 回答
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

于 2015-09-08T15:27:36.607 回答