■100283 / inTopicNo.7) |
Re[5]: IIS 10.0 URLのパラメータの日本語が文字化け |
□投稿者/ 魔界の仮面弁士 (3435回)-(2022/07/15(Fri) 10:15:49)
|
■No100281 (こいち さん) に返信 > Dim strName As String = Me.Request.QueryString("NAME")
まずは、system.web/globalization/requestEncoding を確認してみてください。 既定値は "utf-8" ですが、ここを "shift_jis" にすれば Request.QueryString("NAME") の振る舞いが変換します。
IE11 で、"?NAME=日本語文字列" という Query String を付与した場合、 インターネット オプションの [詳細設定] タブで、 [インターナショナル] - [URL パスを UTF-8 として送信する] (既定で on) - [イントラネット URL の UTF-8 クエリ文字列を送信する] (既定で off) - [イントラネット以外の URL の UTF-8 クエリ文字列を送信する] (既定で off) によって振る舞いが異なります。これらはグループポリシーでも指定できます。 https://admx.help/?Category=Windows_10_2016&Policy=Microsoft.Policies.InternetExplorer::ControlPanel_UTF8URLQuery&Language=ja-jp
※設定変更後は、Internet Explorer を起動しなおさないと反映されないことがあります。ご注意ください。
すなわち、サーバー側の設定とクライアント側の設定の双方を合わせる必要があります。 基本的には UTF-8 に揃えた方が良いですね。 UTF-8 モードで送出しない場合、Shift_JIS に無い文字列を送出できないなどの問題が生じます。
そして UTF-8 として送信するモードの場合、 NAME=%E6%97%A5%E6%9C%AC%E8%AA%9E%E6%96%87%E5%AD%97%E5%88%97 に変換されて送出されます。
一方、UTF-8 にしない場合は既定のコードページとなり、日本語環境では 93,FA, 日 96,7B, 本 8C,EA, 語 95,B6, 文 8E,9A, 字 97,F1, 列 というバイナリで送出されます。
|
|