エントリー記事

Mac IEでselectが文字化けor表示されない

ブラウザ

Mac版IE5.2(OS X用)で、selectタグの中身が文字化けする。何でだろうと調べてみたら、charsetでUTF-8を指定すると、selectの中身の2バイト文字が文字化けするそうです。

このバグの回避方法

2005年11月15日追記:optionにlang="ja"を追加する

SHOW BY BANJOのHikaruさんからコメントいただいたんですが、<option・・・・・lang="ja">で解決しますよ!との事でした。参考になりました。ありがとーございます!

文字コードにUTF-8を使用しない

WIN IE6の「HTML1行目にDOCTYPE以外の宣言を入れると、過去互換モード(IE5.5)で動作する」というバグがある。このバグを回避するために、HTMLの1行目にXML宣言を入れなくても構文チェッカでVALIDとなる条件は、「文字コードをUTF-8にすること」だったりする。じゃあ、UTF-8にしないとダメぢゃん。つーか、制作中のサイトはMovable Typeでできているので、文字コードは一般的にUTF-8なんだなぁコレが。SHIFT-JISやEUC-JPでもいいんですけど、古いRSSリーダーはUTF-8しか拾えなかったりするので、メリットがイマイチ見えてこない。

select内に2バイト文字を使わない

都道府県の選択に、「Hokkaido,aomoriken,Iwateken....」とかってするの?。アフォ、んなことできるかい(笑)。

optgroupを使う

なぜか、optgroupを使うと2バイト文字でも表示されます。しかし、正しく表示されるのは選択時だけで、選択後はやっぱり文字化けする。これでは意味がない。しかも、Mac IEはfieldset内のoptgroupのlabelをうまく表示できないバグがある。見た目やアクセシビリティの都合上、fieldsetで大まかにformの項目をまとめているから、この手は使えない。

フォームがあるページだけ、UTF-8を使わない

なんでそんな面倒くさい事をせねばならんのだ(笑)。でも別の面から見ると一理ある。なぜなら、UTF-8対応のフォームメールCGIは、SHIFT-JIS対応のものよりプレミアがある分、無料じゃなかったり高額だったりする。予算がある人なら別ですが、ないのならこの手もありかな。ちなみに、うちの場合、全部Movable Typeで作っているから、「1ページだけSHIFT-JISにする」ってのはイヤだなぁ。

Mac IEだけ振り分ける

もともと、あんまりJavaScriptは使いたくない。ぶっちゃけよくわからないのがその理由なんですが(笑)。N-88BASICならわかるんですけどねぇ(古)。まぁ、これが一番無難かな。でも、今までワンソース・マルチユースという概念で作ってきたmdからすると、その理想からは甚だ遠い話で、振り分け自体納得できない。

いっそselectを使わない

究極の選択だ(笑)。都道府県名なんて手入力した方が早いし、音声ブラウザで読み上げするにも長すぎる。項目が少ないのであれば、ラジオボタンで済ませるのも手だ。

つーわけで、mdは「いっそselectを使わない」という方法で逃げました。他にうまい解決方法をご存じの方は、ご教授を...