1

従来の ASP で QueryString を介して渡されたヘブライ文字列を処理しようとしています。

私が要求する URL: http://www.XXXX.com/myapp.asp?q = שלום

(שלוםはヘブライ語で「平和」を意味し、4文字で構成されています)

ASP 側では、次のコードを実行します。

mstr = Request.QueryString("q")
for i=1 to Len(mstr)
   Response.Write  Asc(Mid(mstr, i, 1)) & "<br/>"
next 

このスクリプトは、次の出力を生成します: 215 169 215 156 215 149 215 157

8 つの ASCII 文字。つまり、文字ごとに 2 つの ASCII 記号 (バイト) を意味します。

次の出力を確認する必要があります: 249 236 229 237

(ASCII テーブルの上部)

このような文字列を正しく処理するにはどうすればよいですか? (元の文字列で送信された 4 文字を確認するには)。

4

1 に答える 1

0

http://www.XXXX.com/myapp.asp?q=שלוםリンクがある html ページは、 utf-8としてエンコードする必要があります。これは、ブラウザが元のページと同じエンコーディングでリクエストをエンコードするためです (ほとんどの場合)。

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

ただし、クエリ文字列は常に URL エンコードする必要があります。標準リンクの場合、ブラウザーはこれを自動的に行いますが、JavaScript を使用して URL を作成する場合は、URL エンコードを自分で処理する必要があります。

次に、サーバー側スクリプト (ASP) を utf-8 で動作するように設定する必要があります。これを行うには、これらの行を上部に配置します。

<%
    response.codepage = 65001
    response.charset = 'utf-8'
%>

続きを読む: 内部文字列エンコーディング

于 2012-09-05T11:58:54.483 に答える