1

ASP クラシック ページでのコンテンツの一部の動的読み込みに問題があります。選択したドロップダウン オプションに応じて、AJAX を使用して動的にページに読み込みます。Generated には、ドロップダウンとドロップダウン内のオプション テキストを含めるためのいくつかのラベルが含まれています。ラベルは UTF-8 でエンコードされた定数で、一部の西ヨーロッパのアクセント付き文字が含まれています。オプション テキストはデータベースから読み込まれ、アクセント付き文字も含まれていますが、ANSI でコーディングされています。タグは utf-8 に設定されていますが、ページにすべてがまとめられているため、ページの最初の読み込みのみに影響します。他のオプションを選択した後、AJAX は要素を入力し、ラベルを適切に読み込みますが、オプションのテキストが台無しになるため、AJAX はテキストを含むエンコーディングを 2 回目などで読み込まないと思います。回避策は、定数のラベル テキストを変更し、<% Response.Charset = "windows-1252" %> を設定することでした。初めて読み込まれるページ。今、できればAJAX応答ですべてをUTF-8またはwindows-1225に設定するか、ページ上の各要素をajaxで異なるコーディングに設定するためのより良い方法を見つけたいと思います。ASPクラシックの置換機能も試してみましたが、動作しますが、新しいアクセント付きの文字ごとに他の置換が必要です。どんな助けでも大歓迎です!:)

4

1 に答える 1

3

エンコーディングの問題を解決する最善の方法は、utf-8に切り替えることだと思います。自分の言語で特殊文字を処理するという頭痛の種を取り除くだけでなく、ほとんどすべての言語(utf-8を理解しているように)を取り除きます!

まず、HTMLヘッドに次のメタタグを含めます。

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

また、関連するすべてのaspファイルの先頭にUTF-8を設定する必要があります。

response.codepage = 65001
response.charset = "utf-8" 

ただし、aspページとの間で(たとえばフォームを介して)投稿された文字はutf-8として解釈されることに注意してください。スクリプトエンジンの内部では、文字列はユニコードとして保存されます。データを一貫してユニコードとしてデータベースに保存するようにしてください。

詳細については、この質問への回答をお読みください

于 2012-03-15T09:44:00.203 に答える