- PR -

ASP.NETでの文字コードについて

1
投稿者投稿内容
アルゴ
常連さん
会議室デビュー日: 2004/10/06
投稿数: 36
投稿日時: 2006-12-25 12:00
おはようございます。
いつも拝見しております。
入力文字の文字コードについて躓いています。

ASP.NET 2.0 C#で開発しておりまして、
ブラウザはIE6.0、firefox1.0、safari1.2を使用しているのですが、
ブラウザによってサーバに送られてくる文字が違うので困っています。

ブラウザ上でテキストボックスに"\"(円マーク)を入力しポストバックを発生させると、
IEとfirefoxでは"\\"として送られてくるのに対し、
safariでは円マークと少し違う文字が1文字送られてきます。
ですからsafariの場合、ロジック中で"\"と比較する処理でうまくいきません。

文字コードを調べてみたのですが、
IEとfirefoxではAsciiで10進の92すなわち16進で5Cでしたが、
safariではAsciiで10進の63すなわち16進で3Fになっていました。

ブラウザのエンコードはUTF-8で統一しているのですが、
何が原因でこうなってしまうのか検討もつきません。

解決方法や参考になるサイト等をお教え頂けないでしょうか?
皆様、何卒よろしくお願いいたします。
shimix
ぬし
会議室デビュー日: 2004/08/05
投稿数: 512
お住まい・勤務地: 大分市
投稿日時: 2006-12-25 15:35
63(3F)=「?」ですよね?「safari フォーム入力 文字コード」で検索したらけっこうhitしました。

http://logic.stepserver.jp/data/archives/128.html

「?」の入力が不要なのであれば、受け取った直後で置換してしまう方が早いのかもしれません(汗

他にこういう現象も・・

http://www.futomi.com/library/manual/mpmails/html/history.html
>Safari は、一度フォームに項目を入力し、送信した後、前画面に戻り、再度、送信する
>と、全角文字がすべて ? に変換されてサーバに送ってしまう不具合がある。そのため、
>CGI 側では、 ? が 3 つ以上連続した項目が 2 項目以上存在した場合には、文字化けエ
>ラーと判断し、エラーを表示するようにした。
アルゴ
常連さん
会議室デビュー日: 2004/10/06
投稿数: 36
投稿日時: 2006-12-26 14:53
>shimixさん

情報ありがとうございます。
返信が遅くなり申し訳ありません。

上司と協議しまして、shimixさんの案で解決しました。
ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)