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

試す:

Session.CodePage = 28591

ここにはいくつかの良い情報があり、ここで CodePage 番号を取得しました

于 2008-12-01T16:06:23.020 に答える
3

Response.Charsetを使用し て、次のように設定してみましたか:

<% Response.Charset="ISO-8859-1"%>
于 2008-12-01T16:45:23.737 に答える
2

.ASP ファイルと に含まれるすべての .ASP ファイルのエンコーディングを確認してください#include

VSで新しい.ASPファイルを作成し、UTF-8でエンコードしていたときに問題が発生したことがあります。このファイルは他の人によって含まれており、ファイルのエンコーディングは他のすべてのエンコーディング コマンドを「上書き」します。

于 2008-12-02T11:28:29.943 に答える
0

metaあなたがしていることと同等のタグを使用してみましたか?

例:

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

注:Response.Writeたとえば、文字セットがUTF-8の場合、Visual Studioは別のエンコーディングでファイルを保存しようとするため、文字セットを吐き出すためにaを使用します。

于 2008-12-01T22:00:05.520 に答える
0

私の知る限り、これは WinHttpReq / XMLHTTPRequest の既知の問題です。誰かが私が間違っていることを証明してくれることを願っています。

于 2008-12-01T16:49:29.923 に答える
0

私はこのコンポーネントを ASP と Javascript の両方で使用しましたが、javascript では、この問題の解決策をここで見つけました: http://squio.nl/blog/2006/06/27/xmlhttprequest-and-character-encoding/

于 2009-02-27T11:38:51.287 に答える
0

これも参照してください:従来の ASP で POST に XMLHttp オブジェクトを使用して文字セットを設定するにはどうすればよいですか?

于 2008-12-02T15:53:33.793 に答える