- - PR -
ASP.NETでの文字コードについて
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 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で統一しているのですが、 何が原因でこうなってしまうのか検討もつきません。 解決方法や参考になるサイト等をお教え頂けないでしょうか? 皆様、何卒よろしくお願いいたします。 |
|
投稿日時: 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 項目以上存在した場合には、文字化けエ >ラーと判断し、エラーを表示するようにした。 |
|
投稿日時: 2006-12-26 14:53
>shimixさん
情報ありがとうございます。 返信が遅くなり申し訳ありません。 上司と協議しまして、shimixさんの案で解決しました。 ありがとうございました。 |
1