ラベル IE の投稿を表示しています。 すべての投稿を表示
ラベル IE の投稿を表示しています。 すべての投稿を表示

2011年8月23日火曜日

Accept-charset in IE

たとえば、API 経由で 何かを POST したいときなんかに、
フォームのあるページの文字コードと、POST の受け側の文字コードが
違うという場合があって、そういう時にそのままPOSTすると、日本語が文字化けする。

そういう時の為の HTML 属性があって、 たとえば、<form charset="utf-8">
とかすると、もとのページの文字コードに関係なく、utf-8 でエンコードしたデータ
を POST することが出来る。

はず、なのだけど、IE だと、なぜか上の指定が効かなかったりする。
web を眺めていると主に 2通りの解決方法が考えられていて、
一つは onclick などで、submit に対して、javascript をフックして、
document.charset = "utf-8";
などとして、ページの文字コードを変換してしまう方法。
もうひとつは、そもそも、accept-charset が無視されるのは、
form の input の中にそのページの文字コードで解釈できない文字がある場合だけだ
という、tips を利用し、ダミーで
<input type="hidden" name="dummyForIE" value="&#65533;">
というようなフォームを用意して、強制的に、accept-charset を解釈させるという方法。

元の文字コードで表示できなくて、POST 先の文字コードでは表示出来る文字がすぐに
分かるのであれば、後者のやり方の方が良さそう。
(上のダミー input は ecu-jp から、utf-8 の場合の例)

2009年11月4日水曜日

ホスト名に "_"(アンダーバー)が入ってると、IE は cookie を受け付けない。

http://social.msdn.microsoft.com/Forums/en-US/iewebdevelopment/thread/3711fedc-546a-4123-a0b5-33a45a762cc1
http://d.hatena.ne.jp/pirikara/20070920/1190292214

テスト環境で、アンダーバー入りのホストを立てててハマった。
RFC 952 によれば、ホスト名にアンダーバーは駄目らしい・・・
だから、IE は アンダーバーの入ったホストからのクッキーは受け付けない
らしい。