「url に日本語が含まれている場合の Firefox と IE の挙動の違い。」 というポストに対し,mac上のfirefoxやsafariだと大丈夫というコメントをhitさんからいただきました。で,挙動の差についていろいろ調べてみたんですが,参考になる情報がなかったので,もじら組の掲示板に「Firefoxのurlエンコード機能について」という記事を投稿してみました。
いろいろ参考になる意見や情報を得られました。多謝。
で,結論的には,現在のFirefoxはソースの文字コードをベースにurlエンコードしています。ですので,こちらのページのようにshift-jisで構成しているページからUTF-8で構成されているページへのアクセスにマルチバイトを含むと正常に文字として認識(復元)されません。
Firefox1.1(現在公開されているDeer Park alphaでも)ではUTF-8でurlエンコードするのが標準となります。他のブラウザーと同様に振舞うという訳です。
今回は,IEにしろ,mac上のfirefoxにしろ,urlエンコードをutf-8にしていたために,たまたまTechnoratiのサイトではうまく行ったということで,例えばEUCのサイトだとそれはそれで問題になっていたはずです。なかなか難しいところです。
ユーザーが認識できる問題点には限りがありますから提供者側として,
(1) サービス提供者側が文字コードを判別してあげる(url変数のエンコードされた文字列の文字コードを判定,自サイトの文字コードに変換する)必要性がある。
(2) 自サイト内でマルチバイトを含むuriを利用する場合は,必ず文字コードurlエンコードしておかないと,ブラウザーがUTF-8でurlエンコードを決め打ちすると,正常にリンクが機能しない。
という点が重要になりますね。ASPを使ってUTF-8でエンコードする方法はまだ分からないんですが。
Firefox1.1では,UTF-8がデフォルトになるということですが,上記の点を考えると,ブラウザーの機能としては,相対リンクに対してはソースの文字コードで,外部リンクにはUTF-8でurlエンコードするのが好ましいような気がしますが,どうでしょう?
しかし,こういう事柄を「それを意識していない人達に説明する」のは難しいですね。(url-encode,RFC,uri って何??からの説明をしたら嫌がるよなぁ。)
で,現時点でFirefoxのURLencodeをUTF-8化してしまう方法というのも教えていただきました。
てんぷる の投稿 :2005/06/06(Mon) 10:18:21
(環境: WinXP SP2/Firefox1.0.4)
> FirefoxのurlエンコードをUTF-8に固定する方法というのはあるのでしょうか,
Windows の Firefox 1.0.4 の場合、about:config にて
network.standard-url.encode-utf8 を true に変更すると
常にUTF-8でエンコードされるようです。
この情報は貴重です。googleで検索しても殆ど話題に出てきません。いいこと教えてもらいました。
Technorati Tags:photo firefox bike urlencode blogopencage-tbm : Cosmos
2 件のコメント:
webのPHPファイルから、日本語名のファイルの扱いに困ってた感じで、かなり役に立ちました。
ポリシーが異なるのはわかるのですが、文字エンコード周りがもっと一般的に対応する規格があるとありがたいですね。
ブラウザにUTF-8を設定しなさいというエラーが出て困っていたところ、
こちらのサイトが大変参考になりました。
>こういう事柄を「それを意識していない人達に説明する」のは難しいね
一々マウント取らなくていいから。
ありがとうございました。
コメントを投稿