ASP プログラムが同じサイト内にあり、UTF-8 エンコードされたプログラムと GB2312 エンコードされたプログラムが存在する場合、UTF-8 エンコードされたページを参照してから、現在の Web サイトの GB2312 ページを参照すると、GB2312 エンコードされたページが表示されます。文字化け
問題は、UTF-8 エンコーディングを参照すると、サーバーはデフォルトで UTF-8 エンジンを使用して HTML を出力し、GB2312 ページを参照すると、依然として UTF-8 を使用して GB2312 エンコーディングを出力します。 。
この問題は午前中ずっと私を悩ませていましたが、ついに青い理想が解決されました。
まず、Session オブジェクトによって提供される 4 つのプロパティを見てみましょう。
1.コードページの読み取り/書き込み。整数型。
ブラウザーでページのコンテンツを表示するために使用されるコード ページを定義します。コード ページは文字セットの数値であり、異なる言語や場所では異なるコード ページが使用される場合があります。たとえば、ANSI コード ページ 1252 は、米国英語とほとんどのヨーロッパ言語で使用されます。日本語の文字にはコード ページ 932 が使用されます。 (これがここで使用する属性です)
2.LCID読み取り/書き込み。整数型。
ブラウザに送信されるページ ロケール識別子 (LCID) を定義します。 LCID は、地域を一意に識別する国際標準の略語です。たとえば、2057 は、現在の地域の通貨記号を「£」と定義します。 LCID は、オプションの LCID パラメータがある限り、FormatCurrency などのステートメントでも使用できます。 LCID は、ASP 処理ディレクティブ <%...%> で設定することもでき、セッションの LCID 属性の設定よりも優先されます。 ASP 処理命令のリストについては、この章の後半で説明します。
3.セッションIDは読み取り専用です。ロングタイプ。
セッションの作成時にサーバーによって生成された、このセッションのセッション識別子を返します。親 Application オブジェクトの存続期間中のみ一意であるため、新しいアプリケーションの開始時に再利用できます。
4.タイムアウト読み取り/書き込み。整数型。
このセッションのタイムアウト期間を分単位で定義します。ユーザーがタイムアウト期間内に Web ページを更新または要求しない場合、セッションは終了します。必要に応じて各 Web ページで変更できます。デフォルト値は 10 分です。使用率の高いサイトではこの時間は短くなるはずです。
一般的に使用される ANSI コード ページをいくつか示します。
<%@ codepage=65001%>UTF-8
<%@ codepage=936%>簡体字中国語
<%@ codepage=950%>繁体字中国語
<%@ codepage=437 %>米国/カナダ英語
<%@ codepage=932 %>日本語
<%@ codepage=949 %>韓国語
<%@ codepage=866 %>ロシア語
次に、問題を解決するための方法と使用方法について説明します。
Web サイト プログラムで使用される共有ファイル conn.asp に次のコードを追加します。
1. Gb2312エンコードページに追加
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%Session.CodePage=936%>
最後にさらに追加します
<%Response.charset = "BG2312"%>
2. <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> を utf-8 エンコーディング ページに追加します。
<%Session.CodePage=65001%>
<%Response.charset = "utf-8"%>
これが最も簡単で効果的な方法です。