はじめまして、ASP.NET初心者 甘栗と申します。
現在ASP.NET にてWeb開発を行っていますが、
Windows Server 2003 を SP1に上げた途端に
文字化けが発生してしまい困惑しています。
SP1に上げる以前は通貨記号が"\"として表示されていました。
SP1に上げた途端、通貨記号が"?"として表示されてしまいました。
ロケールの設定かと思い、設定->コンパネ->地域と言語のオプション->地域オプションタブ->カスタマイズボタン->通貨タブ の設定を確認しましたが、通貨記号は"\"となっていました。
なお、エンコード指定をデフォルトのutf-8からshift_jisへ変更しています。
サンプルコード:
Web.config ファイル内
<globalization requestEncoding="shift_jis" responseEncoding="shift_jis" />
WebForm
ラベルコントロールを1個貼り付けています。
Page_Load()内
Dim strTest As String = "123456789"
Label1.Text = String.Fromat("{0:c}", Convert.ToDouble(strTest))
SP1以前の結果:\123,456,789
SP1の結果 :?123,456,789
MSのSP1技術情報を見ましたが該当するような記載は見当たらないのですが、
対処方法をご存知の方がいらっしゃいましたら、是非ご回答の程宜しくお願い致します。
追加です。
もっと端的にしてみました。
Label1.Text = String.Fromat("{0:c}", 123456789)
ちなみに、
VB.NETにて同じFormにラベルを貼り試験したところ
正常に「\123,456,789」と表示されました。
ASP.NETですと挙動が異なるのはどうしてなのでしょうか?
どなたか助けてください。
宜しくお願い致します。
自己レスです。
本質的な解決はしていませんが、Web.configのエンコードをデフォルト(以下)のままで使用することで対応しました。
<globalization requestEncoding="utf-8" responseEncoding="utf-8" />
それにしても"shift_jis"で記載すると"\"が"?"になるのかはなぜなんでしょうね。