C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

全過去ログを検索

<< 0 >>
■100309  Re[11]: IIS 10.0 URLのパラメータの日本語が文字化け
□投稿者/ こいち -(2022/07/15(Fri) 13:34:58)
    2022/07/15(Fri) 13:58:59 編集(投稿者)

    No100301 (WebSurfer さん) に返信
    > に返事がないのですが、その設定でやってみると IE11 は「テスト」で Edge は「繝・せ繝・」で、
    > 質問者さんの情報とは逆です。
    >
    > まだ混乱してるようですね。
    >
    > IE11 は生の Shift_JIS コード、Edge は UTF-8 の URL エンコーディングをクエリ文字列として
    > 送信し、サーバー側でそれを Shift_JIS を解釈したということで当然の結果だと思います。
    >
    > 以下は Fiddler でのキャプチャ画像です。#61 が Edge、#87 が IE11 です。
    >
    > http://surferonwww.info/BlogEngine/image.axd?picture=2022%2f7%2f0715Fiddler.jpg

    申し訳ございません。社内環境の設定が何かおかしいということですよね。。。
    テストしてくださりありがとうございます。

    変数:strName をログファイルに出力したら、
    IE:?e?X?g
    Egde:テスト
    となっている状況です。
    文字化けとは違うということですね。

    午後から別作業をしないといけなくて確認が遅れます。
    申し訳ございません。
    状況確認をしてまたご報告させていただきます。
記事No.100277 のレス /過去ログ174より / 関連記事表示
削除チェック/

■100311  Re[12]: IIS 10.0 URLのパラメータの日本語が文字化け
□投稿者/ WebSurfer -(2022/07/15(Fri) 14:24:24)
    No100309 (こいち さん) に返信

    > 社内環境の設定が何かおかしいということですよね。。。

    ブラウザの設定がデフォルトであれば、

    > お客様環境:
    > IE:〇
    > Edge:文字化け発生

    web.config で requestEncoding, responseEncoding を shift_jis に設定

    > 社内テスト環境:
    > IE:文字化け発生
    > Edge:〇

    requestEncoding, responseEncoding 設定なし(デフォルトの UTF-8)

    ・・・となっているのだろうと思います。確認してください。

    解決策は、web.config の requestEncoding, responseEncoding 設定はなし(デフォルト
    の UTF-8)にして、IE11 のオプションで、

    ・イントラネット URL の UTF-8 クエリ文字列を送信する
    ・[イントラネット以外の URL の UTF-8 クエリ文字列を送信する

    にチェックを入れることだと思います。
記事No.100277 のレス /過去ログ174より / 関連記事表示
削除チェック/

■100314  Re[12]: IIS 10.0 URLのパラメータの日本語が文字化け
□投稿者/ WebSurfer -(2022/07/15(Fri) 14:42:11)
    No100309 (こいち さん) に返信

    追伸です。

    > 変数:strName をログファイルに出力したら、
    > IE:?e?X?g
    > Egde:テスト
    > となっている状況です。
    > 文字化けとは違うということですね。

    それは「社内テスト環境」で requestEncoding, responseEncoding 設定なし(デフォルト
    の UTF-8)の結果ですよね?

    IE はデフォルトで「テスト」というクエリ文字列を生 Shift_JIS で送信しますが、その
    コードは「83 65 83 58 83 67」(16 進) となります。「?e?X?g」は「83 65 83 58 83 67」
    をサーバー側で UTF-8 だと思って解釈した結果です。

    65, 58, 67 は UTF-8 ではぞれぞれ e, X, g となります。83 は UTF-8 として解釈できな
    いので ? に置き換わった結果です。

    要するに、?e?X?g は文字化けです。

記事No.100277 のレス /過去ログ174より / 関連記事表示
削除チェック/

■100319  Re[12]: IIS 10.0 URLのパラメータの日本語が文字化け
□投稿者/ WebSurfer -(2022/07/15(Fri) 17:09:28)
    No100309 (こいち さん) に返信

    いろんなことを言う人がいて混乱を招きそうなのでまとめて書いておきます。

    【状況】

    ブラウザ(IE11 と Edge)のアドレスバーに以下のような URL + クエリ文字列を直打ちで
    入力して要求をかける。

    http://xxx.xxx.xxxx.xxx/xxxx.aspx?NAME=テスト

    サーバー側で Request.QueryString("NAME") で受けたクエリ文字列が文字化けする。状況
    No100285 によると以下の通り。

    > お客様環境:
    > IE:〇
    > Edge:文字化け発生
    >
    > 社内テスト環境:
    > IE:文字化け発生
    > Edge:〇


    【当方での検証結果】

    (1) web.config で web.config で requestEncoding, responseEncoding を shift_jis に設定

    Request.QueryString("NAME") の結果は IE11 は「テスト」で Edge は「繝・せ繝・」となります。

    以下は Fiddler でのキャプチャ画像です。#61 が Edge、#87 が IE11 です。

    http://surferonwww.info/BlogEngine/image.axd?picture=2022%2f7%2f0715Fiddler.jpg

    上の画像のとおり、Edge は「テスト」を UTF-16 のパーセントエンコーディングで、IE11 は生の
    Shift_JIS で送信しています。サーバー側はそれを Shift_JIS と解釈するので Edge で送信した
    ものは文字化けします。

    (2) web.config の設定なし(デフォルトの UTF-8)

    Request.QueryString("NAME") の結果は IE11 は「&#65533;e&#65533;X&#65533;g」で Edge は「テスト」となります。

    以下は Fiddler でのキャプチャ画像です。#74 が Edge、#110 が IE11 です。

    http://surferonwww.info/BlogEngine/image.axd?picture=2022%2f7%2f0715Fiddler2.jpg

    上の (1) と同じく、Edge は「テスト」を UTF-16 のパーセントエンコーディングで、IE11 は生の
    Shift_JIS で送信しています。サーバー側はそれを UTF-8 と解釈するので IE11 で送信したものは
    文字化けします。


    【要確認事項】

    以上の検証結果から、ブラウザの設定がデフォルトであれば、

    > お客様環境:
    > IE:〇
    > Edge:文字化け発生

    web.config で requestEncoding, responseEncoding を shift_jis に設定

    > 社内テスト環境:
    > IE:文字化け発生
    > Edge:〇

    requestEncoding, responseEncoding 設定なし(デフォルトの UTF-8)

    ・・・となっているのだろうと思います。確認してください。


    【解決案】

    (1), (2) の Fiddler の画像のとおり、web.config の設定に関わらず、サーバーに送信され
    るクエリ文字列「テスト」は、Egde の場合 UTF-8 のパーセントエンコーディング、IE11 の
    場合は生 Shift_JIS になるところに注意してください。

    なので、IE でも Edge でも文字化けしないようにするための解決策は、requestEncoding,
    responseEncoding はデフォルトの UTF-8 にして、IE11 のオプションで、

    ・イントラネット URL の UTF-8 クエリ文字列を送信する
    ・[イントラネット以外の URL の UTF-8 クエリ文字列を送信する

    にチェックを入れることです。

    そうすれば、サーバーに送信されるクエリ文字列「テスト」は、IE11 の場合も UTF-8 のパーセント
    エンコーディングになります。(2) の Edge の場合と同様になり文字化けは起こりません。
記事No.100277 のレス /過去ログ174より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -