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

わんくま同盟

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

C# と VB.NET の入門サイト

ツリー一括表示

IIS 10.0 URLのパラメータの日本語が文字化け /こいち (22/07/14(Thu) 23:09) #100277
Re[1]: IIS 10.0 URLのパラメータの日本語が文字化け /WebSurfer (22/07/14(Thu) 23:26) #100278
  └ Re[2]: IIS 10.0 URLのパラメータの日本語が文字化け /こいち (22/07/15(Fri) 00:12) #100279
    └ Re[3]: IIS 10.0 URLのパラメータの日本語が文字化け /WebSurfer (22/07/15(Fri) 06:52) #100280
      └ Re[4]: IIS 10.0 URLのパラメータの日本語が文字化け /こいち (22/07/15(Fri) 08:20) #100281
        ├ Re[5]: IIS 10.0 URLのパラメータの日本語が文字化け /WebSurfer (22/07/15(Fri) 08:50) #100282
        │└ Re[6]: IIS 10.0 URLのパラメータの日本語が文字化け /こいち (22/07/15(Fri) 10:33) #100285
        │  └ Re[7]: IIS 10.0 URLのパラメータの日本語が文字化け /WebSurfer (22/07/15(Fri) 11:16) #100289
        │    └ Re[8]: IIS 10.0 URLのパラメータの日本語が文字化け /こいち (22/07/15(Fri) 11:35) #100294
        │      ├ Re[9]: IIS 10.0 URLのパラメータの日本語が文字化け /WebSurfer (22/07/15(Fri) 11:46) #100299
        │      │└ Re[10]: IIS 10.0 URLのパラメータの日本語が文字化け /WebSurfer (22/07/15(Fri) 12:25) #100301
        │      │  └ Re[11]: IIS 10.0 URLのパラメータの日本語が文字化け /こいち (22/07/15(Fri) 13:34) #100309
        │      │    ├ Re[12]: IIS 10.0 URLのパラメータの日本語が文字化け /WebSurfer (22/07/15(Fri) 14:24) #100311
        │      │    ├ Re[12]: IIS 10.0 URLのパラメータの日本語が文字化け /WebSurfer (22/07/15(Fri) 14:42) #100314
        │      │    └ Re[12]: IIS 10.0 URLのパラメータの日本語が文字化け /WebSurfer (22/07/15(Fri) 17:09) #100319
        │      │      └ Re[13]: IIS 10.0 URLのパラメータの日本語が文字化け /こいち (22/07/15(Fri) 19:21) #100323 解決済み
        │      │        ├ Re[14]: IIS 10.0 URLのパラメータの日本語が文字化け /WebSurfer (22/07/16(Sat) 09:51) #100340
        │      │        │├ Re[15]: IIS 10.0 URLのパラメータの日本語が文字化け /WebSurfer (22/07/16(Sat) 09:52) #100341 解決済み
        │      │        │└ Re[15]: IIS 10.0 URLのパラメータの日本語が文字化け /こいち (22/07/17(Sun) 23:13) #100352
        │      │        └ Re[14]: IIS 10.0 URLのパラメータの日本語が文字化け /大谷刑部 (22/07/16(Sat) 09:45) #100339 解決済み
        │      │          └ Re[15]: IIS 10.0 URLのパラメータの日本語が文字化け /こいち (22/07/17(Sun) 23:18) #100353 解決済み
        │      ├ Re[9]: IIS 10.0 URLのパラメータの日本語が文字化け /魔界の仮面弁士 (22/07/15(Fri) 11:42) #100298
        │      │└ Re[10]: IIS 10.0 URLのパラメータの日本語が文字化け /こいち (22/07/15(Fri) 13:30) #100308
        │      ├ Re[9]: IIS 10.0 URLのパラメータの日本語が文字化け /大谷刑部 (22/07/15(Fri) 14:16) #100310
        │      ├ Re[9]: IIS 10.0 URLのパラメータの日本語が文字化け /魔界の仮面弁士 (22/07/15(Fri) 14:27) #100312
        │      │└ Re[10]: IIS 10.0 URLのパラメータの日本語が文字化け /大谷刑部 (22/07/15(Fri) 14:37) #100313
        │      │  └ Re[11]: IIS 10.0 URLのパラメータの日本語が文字化け /魔界の仮面弁士 (22/07/15(Fri) 14:59) #100316
        │      │    └ Re[12]: IIS 10.0 URLのパラメータの日本語が文字化け /大谷刑部 (22/07/15(Fri) 15:08) #100318
        │      └ Re[9]: IIS 10.0 URLのパラメータの日本語が文字化け /大谷刑部 (22/07/15(Fri) 14:52) #100315
        │        └ Re[10]: IIS 10.0 URLのパラメータの日本語が文字化け /大谷刑部 (22/07/15(Fri) 15:04) #100317
        └ Re[5]: IIS 10.0 URLのパラメータの日本語が文字化け /魔界の仮面弁士 (22/07/15(Fri) 10:15) #100283
          └ Re[6]: IIS 10.0 URLのパラメータの日本語が文字化け /こいち (22/07/15(Fri) 10:53) #100286
            ├ Re[7]: IIS 10.0 URLのパラメータの日本語が文字化け /伝説のカレー (22/07/15(Fri) 11:13) #100287
            └ Re[7]: IIS 10.0 URLのパラメータの日本語が文字化け /魔界の仮面弁士 (22/07/15(Fri) 11:33) #100293
              └ Re[8]: IIS 10.0 URLのパラメータの日本語が文字化け /こいち (22/07/15(Fri) 11:38) #100296


親記事 / ▼[ 100278 ]
■100277 / 親階層)  IIS 10.0 URLのパラメータの日本語が文字化け
□投稿者/ こいち (2回)-(2022/07/14(Thu) 23:09:44)

分類:[ASP.NET (VB)] 

表題の通りですが、IIS 10.0 で URLに日本語パラメータを付けてサーバーのモジュールで受け取って
検索をして結果を返す処理を組んでいるのですが、ブラウザが IEの時に日本語が必ず文字化けします。
Egde や Chromeでは文字化けしません。

IEはパラメータをShift-JISでエンコードなしで送るという情報を聞いたのですが、
IISの設定で文字化けをしないようにするといったことは出来るのでしょうか。

IISの「.NET グローバリゼーション」の エンコード:ファイル、応答、応答のヘッダー、要求は 全て「shift_jis」にしています。
また、Web.config で、globalization でも同様に、shift_jis の指定を入れています。

ちなみに、IEの インターネットオプションで「URLパスをUTF-8として送信する」にチェックを付けて送ると文字化けはしません。

ということは、サーバーでは、UTF-8として受け取っていると思うのですが・・・
どこか設定をミスっておりますでしょうか?
また、見る箇所を間違えていたりしたらご指摘いただけないでしょうか。

ご存じの方がおられましたらご教授ください。
宜しくお願い致します。
[ □ Tree ] 返信 編集キー/

▲[ 100277 ] / ▼[ 100279 ]
■100278 / 1階層)  Re[1]: IIS 10.0 URLのパラメータの日本語が文字化け
□投稿者/ WebSurfer (2529回)-(2022/07/14(Thu) 23:26:15)
No100277 (こいち さん) に返信

↓ こういう話なのかな?

ブラウザによる URL のエンコーディング
http://surferonwww.info/BlogEngine/post/2011/11/07/Encoding-of-URL-directly-written-in-address-bar-of-browser.aspx
[ 親 100277 / □ Tree ] 返信 編集キー/

▲[ 100278 ] / ▼[ 100280 ]
■100279 / 2階層)  Re[2]: IIS 10.0 URLのパラメータの日本語が文字化け
□投稿者/ こいち (3回)-(2022/07/15(Fri) 00:12:48)
No100278 (WebSurfer さん) に返信

WebSurfer さん、ありがとうございます。
昨日、このページ拝見してました!

> ↓ こういう話なのかな?
>
> ブラウザによる URL のエンコーディング
> http://surferonwww.info/BlogEngine/post/2011/11/07/Encoding-of-URL-directly-written-in-address-bar-of-browser.aspx

まさに同じ状態だと思います。
アドレスバー直打ち状態です。

やっぱり、UTF-8 として処理されるということなのでしょうか?
[ 親 100277 / □ Tree ] 返信 編集キー/

▲[ 100279 ] / ▼[ 100281 ]
■100280 / 3階層)  Re[3]: IIS 10.0 URLのパラメータの日本語が文字化け
□投稿者/ WebSurfer (2530回)-(2022/07/15(Fri) 06:52:44)
No100279 (こいち さん) に返信

> 昨日、このページ拝見してました!

参考にしたネットの記事があるなら、その url を質問に書いておきましょう。

> やっぱり、UTF-8 として処理されるということなのでしょうか?

あなたの言う「処理」とはなんでしょう?
[ 親 100277 / □ Tree ] 返信 編集キー/

▲[ 100280 ] / ▼[ 100282 ] ▼[ 100283 ]
■100281 / 4階層)  Re[4]: IIS 10.0 URLのパラメータの日本語が文字化け
□投稿者/ こいち (4回)-(2022/07/15(Fri) 08:20:37)
No100280 (WebSurfer さん) に返信

> 参考にしたネットの記事があるなら、その url を質問に書いておきましょう。

申し訳ありません、昨日色々な検索結果を参照させていただいていたのですが
その中の1つに含まれていたのでそのような書き方をしました。
失礼致しました。

>>やっぱり、UTF-8 として処理されるということなのでしょうか?

サーバー側でクライアントから送信されたリクエストパラメータを受け取る処理です。

具体的にはサーバー側のモジュールで

Dim strName As String = Me.Request.QueryString("NAME")

としているのですが、IEの時に上記処理を文字化けせずに受け取るやり方はどうすれば
良いのでしょうか。

IISや、何か設定ファイルの変更が必要かと考えているのですが、その情報を探しておりました。

もちろん、その変更をしてしまえば、今度はEgde が文字化けを起こすとは思っているのですが・・・

宜しくお願い致します。
[ 親 100277 / □ Tree ] 返信 編集キー/

▲[ 100281 ] / ▼[ 100285 ]
■100282 / 5階層)  Re[5]: IIS 10.0 URLのパラメータの日本語が文字化け
□投稿者/ WebSurfer (2531回)-(2022/07/15(Fri) 08:50:11)
No100281 (こいち さん) に返信

> 具体的にはサーバー側のモジュールで
>
> Dim strName As String = Me.Request.QueryString("NAME")
>
> としているのですが、IEの時に上記処理を文字化けせずに受け取るやり方はどうすれば
> 良いのでしょうか。

最初の質問に、

> IEの インターネットオプションで「URLパスをUTF-8として送信する」にチェックを付けて送ると文字化けはしません。

と書いてありますが (なぜそれが効果があるのか分かりませんが)、であれば、そのようにすれば良いのではと思いますけど? そうしない理由があるのですか?

ところで上の「サーバー側のモジュール」って何ですか?
[ 親 100277 / □ Tree ] 返信 編集キー/

▲[ 100282 ] / ▼[ 100289 ]
■100285 / 6階層)  Re[6]: IIS 10.0 URLのパラメータの日本語が文字化け
□投稿者/ こいち (5回)-(2022/07/15(Fri) 10:33:09)
No100282 (WebSurfer さん) に返信

>>IEの インターネットオプションで「URLパスをUTF-8として送信する」にチェックを付けて送ると文字化けはしません。
>
> と書いてありますが (なぜそれが効果があるのか分かりませんが)、であれば、そのようにすれば良いのではと思いますけど? そうしない理由があるのですか?
>
> ところで上の「サーバー側のモジュール」って何ですか?

すみません、実はお客様から問い合わせを受けていまして、社内に同環境を作成したところ問い合わせと違う事象が確認された為
再現確認を進めている状況です。

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

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

サーバー側モジュールというのは、受け取ったパラメータを元に検索を行うモジュールです(dll)
Dim strName As String = Me.Request.QueryString("NAME")
上記のやり方で内部変数にセットしております。
[ 親 100277 / □ Tree ] 返信 編集キー/

▲[ 100285 ] / ▼[ 100294 ]
■100289 / 7階層)  Re[7]: IIS 10.0 URLのパラメータの日本語が文字化け
□投稿者/ WebSurfer (2532回)-(2022/07/15(Fri) 11:16:04)
No100285 (こいち さん) に返信

> すみません、実はお客様から問い合わせを受けていまして、社内に同環境を作成したところ問い合わせと違う事象が確認された為
> 再現確認を進めている状況です。
>
> お客様環境:
> IE:〇
> Edge:文字化け発生
>
> 社内テスト環境:
> IE:文字化け発生
> Edge:〇

質問者さん側でも何が問題なのか把握していないようですが、それでは刑事何尾書いてあること
以外は知り得ない第三者には答えようがありません・・・なんてことは言われるまでもなく分か
っているとは思いますけど。

状況をよく整理してから、何が問題なのか、何を聞きたいのかを明確にしてから質問を書き直して
ください。
 

> サーバー側モジュールというのは、受け取ったパラメータを元に検索を行うモジュールです(dll)
> Dim strName As String = Me.Request.QueryString("NAME")
> 上記のやり方で内部変数にセットしております。

そのモジュールの中身が分からない第三者にモジュール云々と言われてもわかりません。strName
に取得できた文字列が既に文字化けしているのだろうと思いますが、であれば話がそこだけにして
ください。
[ 親 100277 / □ Tree ] 返信 編集キー/

▲[ 100289 ] / ▼[ 100299 ] ▼[ 100298 ] ▼[ 100310 ] ▼[ 100312 ] ▼[ 100315 ]
■100294 / 8階層)  Re[8]: IIS 10.0 URLのパラメータの日本語が文字化け
□投稿者/ こいち (7回)-(2022/07/15(Fri) 11:35:15)
No100289 (WebSurfer さん) に返信

> 質問者さん側でも何が問題なのか把握していないようですが、それでは刑事何尾書いてあること
> 以外は知り得ない第三者には答えようがありません・・・なんてことは言われるまでもなく分か
> っているとは思いますけど。
>
> 状況をよく整理してから、何が問題なのか、何を聞きたいのかを明確にしてから質問を書き直して
> ください。

重ねて申し訳ございません。

Dim strName As String = Me.Request.QueryString("NAME")
 
上記の処理で文字化けが発生していることを確認しております。

web.config、ISの「.NET グローバリゼーション」の エンコードでは、shift_jis を指定しています。
Edgeのアドレスバーに入力した日本語は正しく strName に格納されているのですが
IEの場合、文字化けしているようです。

具体的には各ブラウザで「http://xxx.xxx.xxxx.xxx/searchWeb/Login.aspx?NAME=テスト」(一部編集しております)
と送信するとstrName内には以下のように入っております。
Edge:テスト
IE:?e?X?g

エンコードの方式をshift_jisを指定しているにも関わらず、UTF-8 が使用されているようで
これの原因を知りたい状況でございます。

上手く説明出来なくて申し訳ございません。
[ 親 100277 / □ Tree ] 返信 編集キー/

▲[ 100294 ] / ▼[ 100301 ]
■100299 / 9階層)  Re[9]: IIS 10.0 URLのパラメータの日本語が文字化け
□投稿者/ WebSurfer (2533回)-(2022/07/15(Fri) 11:46:16)
No100294 (こいち さん) に返信

> web.config、ISの「.NET グローバリゼーション」の エンコードでは、shift_jis を指定しています。

それは No100286 に書いてある、

> web.config ですが
> system.web内は以下のように指定しております。
> <globalization fileEncoding="shift_jis" requestEncoding="shift_jis" responseEncoding="shift_jis" responseHeaderEncoding="shift_jis"/>

のことですよね。その設定で IE11 でアドレスバーに、

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

と打ち込んで要求をかけると、

> Dim strName As String = Me.Request.QueryString("NAME")

でサーバーで strName に取得できる文字列が、

> Edge:テスト
> IE:?e?X?g

となるのが解せないという話と理解していいですか?
[ 親 100277 / □ Tree ] 返信 編集キー/

▲[ 100299 ] / ▼[ 100309 ]
■100301 / 10階層)  Re[10]: IIS 10.0 URLのパラメータの日本語が文字化け
□投稿者/ WebSurfer (2534回)-(2022/07/15(Fri) 12:25:12)
No100294 (こいち さん) に返信

No100299 での確認、

>>web.config、ISの「.NET グローバリゼーション」の エンコードでは、shift_jis を指定しています。
>
> それは No100286 に書いてある、
>
>>web.config ですが
>>system.web内は以下のように指定しております。
>><globalization fileEncoding="shift_jis" requestEncoding="shift_jis" responseEncoding="shift_jis" responseHeaderEncoding="shift_jis"/>
>
> のことですよね。その設定で IE11 でアドレスバーに、
>
>>http://xxx.xxx.xxxx.xxx/searchWeb/Login.aspx?NAME=テスト
>
> と打ち込んで要求をかけると、
>
>>Dim strName As String = Me.Request.QueryString("NAME")
>
> でサーバーで strName に取得できる文字列が、
>
>>Edge:テスト
>>IE:?e?X?g
>
> となるのが解せないという話と理解していいですか?

に返事がないのですが、その設定でやってみると 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




[ 親 100277 / □ Tree ] 返信 編集キー/

▲[ 100301 ] / ▼[ 100311 ] ▼[ 100314 ] ▼[ 100319 ]
■100309 / 11階層)  Re[11]: IIS 10.0 URLのパラメータの日本語が文字化け
□投稿者/ こいち (10回)-(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:テスト
となっている状況です。
文字化けとは違うということですね。

午後から別作業をしないといけなくて確認が遅れます。
申し訳ございません。
状況確認をしてまたご報告させていただきます。
[ 親 100277 / □ Tree ] 返信 編集キー/

▲[ 100309 ] / 返信無し
■100311 / 12階層)  Re[12]: IIS 10.0 URLのパラメータの日本語が文字化け
□投稿者/ WebSurfer (2535回)-(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 クエリ文字列を送信する

にチェックを入れることだと思います。

[ 親 100277 / □ Tree ] 返信 編集キー/

▲[ 100309 ] / 返信無し
■100314 / 12階層)  Re[12]: IIS 10.0 URLのパラメータの日本語が文字化け
□投稿者/ WebSurfer (2536回)-(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 は文字化けです。


[ 親 100277 / □ Tree ] 返信 編集キー/

▲[ 100309 ] / ▼[ 100323 ]
■100319 / 12階層)  Re[12]: IIS 10.0 URLのパラメータの日本語が文字化け
□投稿者/ WebSurfer (2537回)-(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 の場合と同様になり文字化けは起こりません。

[ 親 100277 / □ Tree ] 返信 編集キー/

▲[ 100319 ] / ▼[ 100340 ] ▼[ 100339 ]
■100323 / 13階層)  Re[13]: IIS 10.0 URLのパラメータの日本語が文字化け
□投稿者/ こいち (11回)-(2022/07/15(Fri) 19:21:42)
No100319 (WebSurfer さん) に返信

すみません、遅くなりました。
色々ありがとうございます。

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

こちらですが、web.config では requestEncoding, responseEncoding を shift_jis に設定しています。
(ここは変更せずテストしておりました)

で、大谷刑部 さんが書かれていることが気になって、
-------------------------------------------------------------
Dim strName As String = Me.Request.QueryString("NAME")
-------------------------------------------------------------
ここの処理を下記のように修正してみました。
-----------------------------------------------------------------------------------------------------------------------
Dim queryDictionary As NameValueCollection = HttpUtility.ParseQueryString(Context.Request.Url.Query, Encoding.UTF8)
Dim strName As String = queryDictionary.Get("NAME")
-----------------------------------------------------------------------------------------------------------------------

パラメータの取得時にどの文字コードを指定しているのかよく分からなかったので明示的に指定してみました。
Encoding.Defalt は「繝・せ繝・」となったため、Encoding.UTF8 を試したら
結果、IE も Edge もパラメータで指定した文字を取得することが出来ました。
IEはの以下のオプションはチェックは付けていない状態でした。(PC再起動済み)
・イントラネット URL の UTF-8 クエリ文字列を送信する
・イントラネット以外の URL の UTF-8 クエリ文字列を送信する

正直、よく理解出来ていないのですが、一旦、上司に相談してこちらで検証を進める話になりました。 

web.config の globalization が効いていないのでしょうか・・・

WebSurfer様、魔界の仮面弁士様、大谷刑部様、ありがとうございました。
まだ理解出来ていないところがありますが、解決とさせていただきます。

引き続き、勉強は継続してみます。
解決済み
[ 親 100277 / □ Tree ] 返信 編集キー/

▲[ 100323 ] / ▼[ 100341 ] ▼[ 100352 ]
■100340 / 14階層)  Re[14]: IIS 10.0 URLのパラメータの日本語が文字化け
□投稿者/ WebSurfer (2538回)-(2022/07/16(Sat) 09:51:28)
No100323 (こいち さん) に返信

> こちらですが、web.config では requestEncoding, responseEncoding を shift_jis に設定しています。

ということは、結局以下のようになった理由は分からないということですね。

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

質問者さん・お客の固有の環境の問題とかとかがあるとすと、第三者には分からない話な
のかも。


> Dim queryDictionary As NameValueCollection = HttpUtility.ParseQueryString(Context.Request.Url.Query, Encoding.UTF8)
> Dim strName As String = queryDictionary.Get("NAME")
> パラメータの取得時にどの文字コードを指定しているのかよく分からなかったので明示的に指定してみました。
> Encoding.Defalt は「繝・せ繝・」となったため、Encoding.UTF8 を試したら
> 結果、IE も Edge もパラメータで指定した文字を取得することが出来ました。

そこは興味を引いたのでこちらの環境でも試してみました。

「テスト」の生 Shift_JIS のバイト列が送信されてきているのに、UTF-8 でデコードして
もとの「テスト」になるなんてあり得ないと思っていたのですが、実際に試してみたら結果
は以下の通りとなりました。(1) の IE11 が不可解ですが・・・

(1) の IE11 で Request.Url.Query が ?NAME=%E3%83%86%E3%82%B9%E3%83%88

(1) requestEncoding="shift_jis" responseEncoding="shift_jis"

Edge 103.0.1264.49
Request.QueryString["NAME"]: 繝・せ繝・
Request.Url.Query: ?NAME=%E3%83%86%E3%82%B9%E3%83%88

IE11
Request.QueryString["NAME"]: テスト
Request.Url.Query: ?NAME=%E3%83%86%E3%82%B9%E3%83%88 ←これが不可解


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

Edge 103.0.1264.49
Request.QueryString["NAME"]: テスト
Request.Url.Query: ?NAME=%E3%83%86%E3%82%B9%E3%83%88

IE11
Request.QueryString["NAME"]: ?e?X?g
Request.Url.Query: ?NAME=%EF%BF%BDe%EF%BF%BDX%EF%BF%BDg

注: 上の ? は REPLACEMENT_CHARACTER (U+FFFD) で、U+FFFD は UTF-8 のバイト列で
  は EF BF BD となります。Unicode デコーダーではデコードできず置き換えられ
  た結果です。

[ 親 100277 / □ Tree ] 返信 編集キー/

▲[ 100340 ] / 返信無し
■100341 / 15階層)  Re[15]: IIS 10.0 URLのパラメータの日本語が文字化け
□投稿者/ WebSurfer (2539回)-(2022/07/16(Sat) 09:52:25)
解決済みマーク
解決済み
[ 親 100277 / □ Tree ] 返信 編集キー/

▲[ 100340 ] / 返信無し
■100352 / 15階層)  Re[15]: IIS 10.0 URLのパラメータの日本語が文字化け
□投稿者/ こいち (12回)-(2022/07/17(Sun) 23:13:24)
No100340 (WebSurfer さん) に返信
すみません、遅くなりました。

> ということは、結局以下のようになった理由は分からないということですね。

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

はい、これも解決していないのですが、環境に依存している問題の可能性はあるかと
思っています。IISか、VisualStudioの設定か、分からないのですが・・・

> そこは興味を引いたのでこちらの環境でも試してみました。
>
> 「テスト」の生 Shift_JIS のバイト列が送信されてきているのに、UTF-8 でデコードして
> もとの「テスト」になるなんてあり得ないと思っていたのですが、実際に試してみたら結果
> は以下の通りとなりました。(1) の IE11 が不可解ですが・・・

ご確認いただきありがとうございます。
自分もなぜこれでうまくいったのか未だに分かっておりません。
お客様と打ち合わせを設けるのは大分先になるので検証がNGになった場合、
また見直すことになるかもしれません。
その時はお客様環境を十分確認した上で再度検証を進めようと思います。
[ 親 100277 / □ Tree ] 返信 編集キー/

▲[ 100323 ] / ▼[ 100353 ]
■100339 / 14階層)  Re[14]: IIS 10.0 URLのパラメータの日本語が文字化け
□投稿者/ 大谷刑部 (212回)-(2022/07/16(Sat) 09:45:30)
No100323 (こいち さん) に返信
> ■No100319 (WebSurfer さん) に返信
>
> すみません、遅くなりました。
> 色々ありがとうございます。
>
>>(1) web.config で web.config で requestEncoding, responseEncoding を shift_jis に設定
>
> こちらですが、web.config では requestEncoding, responseEncoding を shift_jis に設定しています。
> (ここは変更せずテストしておりました)
>
> で、大谷刑部 さんが書かれていることが気になって、
> -------------------------------------------------------------
> Dim strName As String = Me.Request.QueryString("NAME")
> -------------------------------------------------------------
> ここの処理を下記のように修正してみました。
> -----------------------------------------------------------------------------------------------------------------------
> Dim queryDictionary As NameValueCollection = HttpUtility.ParseQueryString(Context.Request.Url.Query, Encoding.UTF8)
> Dim strName As String = queryDictionary.Get("NAME")
> -----------------------------------------------------------------------------------------------------------------------
>
> パラメータの取得時にどの文字コードを指定しているのかよく分からなかったので明示的に指定してみました。
> Encoding.Defalt は「繝・せ繝・」となったため、Encoding.UTF8 を試したら
> 結果、IE も Edge もパラメータで指定した文字を取得することが出来ました。

それはエンコードの方をUTF-8に変えて解決したということになるのですが、それで構わないんですね?
設定ファイルで、エンコードをs-jisにするのが要件的に必須なのかと思ってました。

前にも書きましたが、弁さんのエンコードとデコードの文字コードが一致してなかったとの指摘が全てかと。

上司に相談して最終決定するにしても、原因の根本を理解してから話した方がよろしいかと

弁さんがエンコードデコードの不一致の例まで書いてくれてるのですから、それを元に説明するのが一番わかりやすいでしょう。
解決済み
[ 親 100277 / □ Tree ] 返信 編集キー/

▲[ 100339 ] / 返信無し
■100353 / 15階層)  Re[15]: IIS 10.0 URLのパラメータの日本語が文字化け
□投稿者/ こいち (13回)-(2022/07/17(Sun) 23:18:50)
No100339 (大谷刑部 さん) に返信

> それはエンコードの方をUTF-8に変えて解決したということになるのですが、それで構わないんですね?
> 設定ファイルで、エンコードをs-jisにするのが要件的に必須なのかと思ってました。
>
> 前にも書きましたが、弁さんのエンコードとデコードの文字コードが一致してなかったとの指摘が全てかと。
>
> 上司に相談して最終決定するにしても、原因の根本を理解してから話した方がよろしいかと
>
> 弁さんがエンコードデコードの不一致の例まで書いてくれてるのですから、それを元に説明するのが一番わかりやすいでしょう。

すみません、遅くなりました。
上司にも相談したんですが、簡単にお客様の環境を調査することは出来ないとのことで
一旦、調査は凍結することになりました。

お客様環境を確認出来ていないので不安要素はあるのですが・・・
解決済み
[ 親 100277 / □ Tree ] 返信 編集キー/

▲[ 100294 ] / ▼[ 100308 ]
■100298 / 9階層)  Re[9]: IIS 10.0 URLのパラメータの日本語が文字化け
□投稿者/ 魔界の仮面弁士 (3437回)-(2022/07/15(Fri) 11:42:52)
No100294 (こいち さん) に返信
> web.config、ISの「.NET グローバリゼーション」の エンコードでは、shift_jis を指定しています。

一般的には utf-8 のままにするものだと思いますが、そこはまぁ現場の運用方針次第ですかね。


> 具体的には各ブラウザで「http://xxx.xxx.xxxx.xxx/searchWeb/Login.aspx?NAME=テスト」(一部編集しております)
> と送信するとstrName内には以下のように入っております。
> Edge:テスト
> IE:?e?X?g

Fiddler を使うなどして、サーバーに送出される URL が
 ・生の Shift_JIS データ
 ・生の UTF-8 データ
 ・Shift_JIS でパーセントエンコーディングされたデータ
 ・UTF-8 でパーセントエンコーディングされたデータ
 ・その他
のいずれなのかを確認してみてください。
IIS や ASP.NET の設定を見直すのはその後の話。
[ 親 100277 / □ Tree ] 返信 編集キー/

▲[ 100298 ] / 返信無し
■100308 / 10階層)  Re[10]: IIS 10.0 URLのパラメータの日本語が文字化け
□投稿者/ こいち (9回)-(2022/07/15(Fri) 13:30:39)
No100298 (魔界の仮面弁士 さん) に返信
>>具体的には各ブラウザで「http://xxx.xxx.xxxx.xxx/searchWeb/Login.aspx?NAME=テスト」(一部編集しております)
>>と送信するとstrName内には以下のように入っております。
>>Edge:テスト
>>IE:?e?X?g
>
> Fiddler を使うなどして、サーバーに送出される URL が
>  ・生の Shift_JIS データ
>  ・生の UTF-8 データ
>  ・Shift_JIS でパーセントエンコーディングされたデータ
>  ・UTF-8 でパーセントエンコーディングされたデータ
>  ・その他
> のいずれなのかを確認してみてください。
> IIS や ASP.NET の設定を見直すのはその後の話。

すみません、実はWeb系の開発からちょっと外れておりまして、急遽お客様からの問い合わせ対応をしている状況です。
Fiddler も現在の端末に入っておらず、準備して確認してみます。
午後から別件の作業が入っているので確認や報告が遅れます。
申し訳ございません。
[ 親 100277 / □ Tree ] 返信 編集キー/

▲[ 100294 ] / 返信無し
■100310 / 9階層)  Re[9]: IIS 10.0 URLのパラメータの日本語が文字化け
□投稿者/ 大谷刑部 (206回)-(2022/07/15(Fri) 14:16:58)
No100294 (こいち さん) に返信
> ■No100289 (WebSurfer さん) に返信
>
>>質問者さん側でも何が問題なのか把握していないようですが、それでは刑事何尾書いてあること
>>以外は知り得ない第三者には答えようがありません・・・なんてことは言われるまでもなく分か
>>っているとは思いますけど。
>>
>>状況をよく整理してから、何が問題なのか、何を聞きたいのかを明確にしてから質問を書き直して
>>ください。
>
> 重ねて申し訳ございません。
>
> Dim strName As String = Me.Request.QueryString("NAME")
>  
> 上記の処理で文字化けが発生していることを確認しております。
>
> web.config、ISの「.NET グローバリゼーション」の エンコードでは、shift_jis を指定しています。
> Edgeのアドレスバーに入力した日本語は正しく strName に格納されているのですが
> IEの場合、文字化けしているようです。
>
> 具体的には各ブラウザで「http://xxx.xxx.xxxx.xxx/searchWeb/Login.aspx?NAME=テスト」(一部編集しております)
> と送信するとstrName内には以下のように入っております。
> Edge:テスト
> IE:?e?X?g
>
> エンコードの方式をshift_jisを指定しているにも関わらず、UTF-8 が使用されているようで
> これの原因を知りたい状況でございます。

エンコードがSJisでデコードがUTF-8ならおっしゃるような結果になりますね。

No100283の指摘通りクライアント(ブラウザー)とサーバーの設定があってないことが原因なんじゃないでしょうか?

まずは、現状の設定の確認からだと思います。
[ 親 100277 / □ Tree ] 返信 編集キー/

▲[ 100294 ] / ▼[ 100313 ]
■100312 / 9階層)  Re[9]: IIS 10.0 URLのパラメータの日本語が文字化け
□投稿者/ 魔界の仮面弁士 (3438回)-(2022/07/15(Fri) 14:27:35)
No100294 (こいち さん) に返信
> Edge:テスト
> IE:?e?X?g
> エンコードの方式をshift_jisを指定しているにも関わらず、UTF-8 が使用されているようで

NAME=テスト
NAME=%E3%83%86%E3%82%B9%E3%83%88
NAME=%83e%83X%83g

の結果を、「お客様環境」「社内テスト環境」とで、Edge / IE それぞれ比較できますか?
Fiddler の導入が難しい場合は、上記だけでも状況をソコソコ絞り込めるかと思います。

Shift_JIS でエンコードされた "テスト" を UTF-8 でデコードすると "繝・せ繝・" に化けます。
UTF-8 でエンコードされた "テスト" を Shift_JIS でデコードすると "?e?X?g" に化けます。
[ 親 100277 / □ Tree ] 返信 編集キー/

▲[ 100312 ] / ▼[ 100316 ]
■100313 / 10階層)  Re[10]: IIS 10.0 URLのパラメータの日本語が文字化け
□投稿者/ 大谷刑部 (207回)-(2022/07/15(Fri) 14:37:55)
No100312 (魔界の仮面弁士 さん) に返信
> ■No100294 (こいち さん) に返信
>>Edge:テスト
>>IE:?e?X?g
>>エンコードの方式をshift_jisを指定しているにも関わらず、UTF-8 が使用されているようで
>
> NAME=テスト
> NAME=%E3%83%86%E3%82%B9%E3%83%88
> NAME=%83e%83X%83g
>
> の結果を、「お客様環境」「社内テスト環境」とで、Edge / IE それぞれ比較できますか?
> Fiddler の導入が難しい場合は、上記だけでも状況をソコソコ絞り込めるかと思います。
>
> Shift_JIS でエンコードされた "テスト" を UTF-8 でデコードすると "繝・せ繝・" に化けます。
> UTF-8 でエンコードされた "テスト" を Shift_JIS でデコードすると "?e?X?g" に化けます。

逆じゃありません?
質問者さんが嘘を言ってない限り、

>><globalization fileEncoding="shift_jis" requestEncoding="shift_jis" responseEncoding="shift_jis" responseHeaderEncoding="shift_jis"/>

なのでS-JISでエンコードはされてる気がしますし。

[ 親 100277 / □ Tree ] 返信 編集キー/

▲[ 100313 ] / ▼[ 100318 ]
■100316 / 11階層)  Re[11]: IIS 10.0 URLのパラメータの日本語が文字化け
□投稿者/ 魔界の仮面弁士 (3439回)-(2022/07/15(Fri) 14:59:58)
2022/07/15(Fri) 15:05:00 編集(投稿者)

No100313 (大谷刑部 さん) に返信
>>Shift_JIS でエンコードされた "テスト" を UTF-8 でデコードすると "繝・せ繝・" に化けます。
>>UTF-8 でエンコードされた "テスト" を Shift_JIS でデコードすると "?e?X?g" に化けます。
> 逆じゃありません?

Oops...逆になってますね。(汗
大変申し訳ない。


Shift_JIS "テスト"は「83 65 83 58 83 67」
(パーセントエンコードした場合は "%83e%83X%83g")
これを UTF-8 で復元すると
 83 → (不正データ)
 65 → "e"
 83 → (不正データ)
 58 → "X"
 83 → (不正データ)
 67 → "g"
という化け方。


UTF-8 "テスト" は「E3 83 86 E3 82 B9 E3 83 88」
(パーセントエンコードした場合は "%E3%83%86%E3%82%B9%E3%83%88")
これを Shift_JIS として復元すると
 E383 → "繝"
 86E3 → "・" …Shift_JIS では未定義、Shift_JIS-2004 ではU+32DA (丸サ)
 82B9 → "せ"
 E383 → "繝"
 88 → (不正データ)
という化け方。
[ 親 100277 / □ Tree ] 返信 編集キー/

▲[ 100316 ] / 返信無し
■100318 / 12階層)  Re[12]: IIS 10.0 URLのパラメータの日本語が文字化け
□投稿者/ 大谷刑部 (210回)-(2022/07/15(Fri) 15:08:43)
No100316 (魔界の仮面弁士 さん) に返信
> 2022/07/15(Fri) 15:05:00 編集(投稿者)
>
> ■No100313 (大谷刑部 さん) に返信
> >>Shift_JIS でエンコードされた "テスト" を UTF-8 でデコードすると "繝・せ繝・" に化けます。
> >>UTF-8 でエンコードされた "テスト" を Shift_JIS でデコードすると "?e?X?g" に化けます。
>>逆じゃありません?
>
> Oops...逆になってますね。(汗
> 大変申し訳ない。
>
>
> Shift_JIS "テスト"は「83 65 83 58 83 67」
> (パーセントエンコードした場合は "%83e%83X%83g")
> これを UTF-8 で復元すると
>  83 → (不正データ)
>  65 → "e"
>  83 → (不正データ)
>  58 → "X"
>  83 → (不正データ)
>  67 → "g"
> という化け方。
>
>
> UTF-8 "テスト" は「E3 83 86 E3 82 B9 E3 83 88」
> (パーセントエンコードした場合は "%E3%83%86%E3%82%B9%E3%83%88")
> これを Shift_JIS として復元すると
>  E383 → "繝"
>  86E3 → "・" …Shift_JIS では未定義、Shift_JIS-2004 ではU+32DA (丸サ)
>  82B9 → "せ"
>  E383 → "繝"
>  88 → (不正データ)
> という化け方。

ですね。ということで質問者さん。

上記のケースに該当すると思うので、エンコード自体は設定どおりS-JISでできてると思います。
デコードがUTF-8でされているための化けと思うのでデコードもS-JISでできれば無事元の文字に戻ると思います。

[ 親 100277 / □ Tree ] 返信 編集キー/

▲[ 100294 ] / ▼[ 100317 ]
■100315 / 9階層)  Re[9]: IIS 10.0 URLのパラメータの日本語が文字化け
□投稿者/ 大谷刑部 (208回)-(2022/07/15(Fri) 14:52:58)
No100294 (こいち さん) に返信
> Dim strName As String = Me.Request.QueryString("NAME")
>  
> 上記の処理で文字化けが発生していることを確認しております。

文字コードをS-JISで指定してデコードしたらどうなりますか?

https://hensa40.cutegirl.jp/archives/2186
[ 親 100277 / □ Tree ] 返信 編集キー/

▲[ 100315 ] / 返信無し
■100317 / 10階層)  Re[10]: IIS 10.0 URLのパラメータの日本語が文字化け
□投稿者/ 大谷刑部 (209回)-(2022/07/15(Fri) 15:04:25)
No100315 (大谷刑部 さん) に返信
> ■No100294 (こいち さん) に返信
>>Dim strName As String = Me.Request.QueryString("NAME")
>>  
>>上記の処理で文字化けが発生していることを確認しております。
>
> 文字コードをS-JISで指定してデコードしたらどうなりますか?
> ↓
> https://hensa40.cutegirl.jp/archives/2186

上記のサイトだと文字コード指定しないサンプルになってたので

https://www.ipentec.com/document/csharp-decode-url

を参考にしてもらった方がいいかも。
C#をVBの構文に置き換えれば、S-JISでデコードできるはずです。

[ 親 100277 / □ Tree ] 返信 編集キー/

▲[ 100281 ] / ▼[ 100286 ]
■100283 / 5階層)  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, 列
というバイナリで送出されます。
[ 親 100277 / □ Tree ] 返信 編集キー/

▲[ 100283 ] / ▼[ 100287 ] ▼[ 100293 ]
■100286 / 6階層)  Re[6]: IIS 10.0 URLのパラメータの日本語が文字化け
□投稿者/ こいち (6回)-(2022/07/15(Fri) 10:53:50)
No100283 (魔界の仮面弁士 さん) に返信
ご返信ありがとうございます。

> まずは、system.web/globalization/requestEncoding を確認してみてください。
> 既定値は "utf-8" ですが、ここを "shift_jis" にすれば
>  Request.QueryString("NAME")
> の振る舞いが変換します。

web.config ですが
system.web内は以下のように指定しております。
<globalization fileEncoding="shift_jis" requestEncoding="shift_jis" responseEncoding="shift_jis" responseHeaderEncoding="shift_jis"/>

> すなわち、サーバー側の設定とクライアント側の設定の双方を合わせる必要があります。
> 基本的には UTF-8 に揃えた方が良いですね。
> UTF-8 モードで送出しない場合、Shift_JIS に無い文字列を送出できないなどの問題が生じます。

現在、処理結果から判断してモジュール内で、受け取っているのは、UTF-8 としてエンコードされている認識です。

今後はEdgeを使用することになると思うので、今の状態でも問題ないのですが、
なぜ、お客様の事象の再現が出来ないのか、というところで悩んでおります。

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

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

.NetFrameWork のバージョンによってエンコード方式が変わるといったことはございませんでしょうか?
昔は Shift-JIS だったけど、現在は UTF-8 になっているとか・・・
[ 親 100277 / □ Tree ] 返信 編集キー/

▲[ 100286 ] / 返信無し
■100287 / 7階層)  Re[7]: IIS 10.0 URLのパラメータの日本語が文字化け
□投稿者/ 伝説のカレー (31回)-(2022/07/15(Fri) 11:13:34)
No100286 (こいち さん) に返信

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

社内テスト環境に
> <globalization fileEncoding="shift_jis" requestEncoding="shift_jis" responseEncoding="shift_jis" responseHeaderEncoding="shift_jis"/>
この設定が入ってないと仮定すると状況的には説明がつくんですけどね

> .NetFrameWork のバージョンによってエンコード方式が変わるといったことはございませんでしょうか?
> 昔は Shift-JIS だったけど、現在は UTF-8 になっているとか・・・

ないとは言い切れないですけど設定ファイルがあるんだからそれを無視されたら何のための設定ファイルなのよって思っちゃいます
お客様環境と社内テスト環境では.NETのバージョンが違うんですか?
[ 親 100277 / □ Tree ] 返信 編集キー/

▲[ 100286 ] / ▼[ 100296 ]
■100293 / 7階層)  Re[7]: IIS 10.0 URLのパラメータの日本語が文字化け
□投稿者/ 魔界の仮面弁士 (3436回)-(2022/07/15(Fri) 11:33:11)
2022/07/15(Fri) 11:36:08 編集(投稿者)

No100286 (こいち さん) に返信
> お客様環境:
> IE:〇
> Edge:文字化け発生
>
> 社内テスト環境:
> IE:文字化け発生
> Edge:〇

"〇" は漢数字のゼロですよ? (U+3007)
https://persimummies.hatenablog.com/entry/2015/11/14/183358


> .NetFrameWork のバージョンによってエンコード方式が変わるといったことはございませんでしょうか?
「お客様環境」と「社内テスト環境」で、IE ゾーンが違っているということはありませんか?

既定の IE 設定だと、「インターネット ゾーン」と「ローカル イントラネット ゾーン」とで、
パーセントエンコーディングの有無が異なることがあります。

お客様環境がインターネットゾーンの場合は、hosts や DNS を用いて、
テスト環境のゾーンを、イントラネットからインターネットへと
変更してみてください。
https://atmarkit.itmedia.co.jp/fwin2k/win2ktips/1201iezone/iezone.html

IE の場合、今回の QueryString の件のみらず、制限付きサイト、信頼済みサイトで
アプリ動作が変わる事もあるので、検証環境と本番環境のゾーンを一致させておくことは重要です。
[ 親 100277 / □ Tree ] 返信 編集キー/

▲[ 100293 ] / 返信無し
■100296 / 8階層)  Re[8]: IIS 10.0 URLのパラメータの日本語が文字化け
□投稿者/ こいち (8回)-(2022/07/15(Fri) 11:38:37)
No100293 (魔界の仮面弁士 さん) に返信

> "〇" は漢数字のゼロですよ? (U+3007)
> https://persimummies.hatenablog.com/entry/2015/11/14/183358

申し訳ございません。文字化けしないという意味で書かせていただきました。

> 「お客様環境」と「社内テスト環境」で、IE ゾーンが違っているということはありませんか?
>
> 既定の IE 設定だと、「インターネット ゾーン」と「ローカル イントラネット ゾーン」とで、
> パーセントエンコーディングの有無が異なることがあります。
>
> お客様環境がインターネットゾーンの場合は、hosts や DNS を用いて、
> テスト環境のゾーンを、イントラネットからインターネットへと
> 変更してみてください。
> https://atmarkit.itmedia.co.jp/fwin2k/win2ktips/1201iezone/iezone.html
>
> IE の場合、今回の QueryString の件のみらず、制限付きサイト、信頼済みサイトで
> アプリ動作が変わる事もあるので、検証環境と本番環境のゾーンを一致させておくことは重要です。

ありがとうございます。
ちょっとお客様の環境状態をヒアリングさせていただごうかと思います。
[ 親 100277 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -