ArtSaltのサイドストーリー

音楽、フリーウェア、WEBサービス、食べものなどに関する日記。トラックバック、コメント歓迎。

OperaとFirefoxの文字エンコーディングがどうのこうの

Encode international Web addresses with UTF-8

先日、父の葬儀と初七日をやったので、Wikipediaなどで「浄土真宗」を調べたりする。うちの宗派は浄土真宗だもんで。Wikipediaを開くと、アドレスバーに普通は
http://ja.wikipedia.org/wiki/%E6%B5%84%E5%9C%9F%E7%9C%9F%E5%AE%97
っていう長ったらしいURIが表示されるけど、Operaはデフォルト設定で
http://ja.wikipedia.org/wiki/浄土真宗
っていうふうになる。Operaを使い始めたころ、これに気づいたときは「なんて素晴らしいお節介なんだ!」と感激したもんだ。

Wikipediaスクリーンショット

  • でも、ブログにテキストアンカーをぺたっと貼りつけたいとき不便。
  • Operaのほうで "Execute program,"D:\PrivFold2_pg\Mozilla Firefox\firefox.exe","%u"" をやると、Firefoxは正しく
    http://ja.wikipedia.org/wiki/%E6%B5%84%E5%9C%9F%E7%9C%9F%E5%AE%97
    を表示する。なんか不思議。
  • 逆にFirefox側からOperaViewを使うと、
    http://ja.wikipedia.org/wiki/%25E6%25B5%2584%25E5%259C%259F%25E7%259C%259F%25E5%25AE%2597
    なんていうページがOpera側のほうに出てきて、困ったもんだ。エンコーディングがどうたらこうたらという理由だと思うけど。

設定で "Encode international Web addresses with UTF-8" のチェックを外すことにした。

Opera設定ダイアログのスクリーンショット

左角括弧と右角括弧

  1. しかし、そういうふうにしても依然として、Firefox + OperaView でOperaを呼び出すと、文字化けして http://ja.wikipedia.org/wiki/%25E6%25B5%2584%25E5%259C%259F%25E7%259C%259F%25E5%25AE%2597 というページがOperaのほうに出てきてしまう。
    1. この現象(「Opera → Firefox」はOK、「Firefox → Opera」はNG)はWikipediaだけでなくGoogleのWeb検索結果のページでも起きる。
  2. さらに言えば、クエリーに日本語が混ざるときだけこの問題が発生するわけではない。
    1. "ball" の意味を調べるため Merriam-Webster Online Dictionary を使うと、
      http://www.merriam-webster.com/dictionary/ball
      になる。ここまではFirefoxもOperaも同じ。
    2. しかし、さらに動詞としての "ball" の意味を知るために "2 ball (verb)" をクリックすると、Operaのアドレスバーには左右の角括弧が現れる。URIに角括弧なんて珍しい。
      http://www.merriam-webster.com/dictionary/ball[2]
      Firefoxのロケーションバーには以下の文字列が。うーむ …
      http://www.merriam-webster.com/dictionary/ball%5B2%5D
    3. Merriam-Webster Online Dictionary のようにURIに角括弧が含まれる場合でも、やはり「Opera → Firefox」はOK、「Firefox → Opera」はNGになる。

Merriam-Webster Online Dictionary のスクリーンショット

Operaに非があるのか、OperaView (Firefox) に非があるのか、不明。

Google
WWW ArtSaltのサイドストーリー
たぶんOperaViewのほうで、Operaに渡す前にencodeURIというjavascript関数を実行してからOperaに投げてるんだと思います。既にエンコードされたものにもう一度それをやると%が2回エンコードされるので上みたいになります。
解決方法は、OperaViewのソースを見て、

encodeURI(hogehoge)

とか

encodeURIComponent(hogehoge)

とか書いてあるところを単に

hogehoge

に変えればいいと思います。
2008/10/04(土) 21:55:23 | URL | edvakf #Y.EWVbK6[edit]
ソース見ても、encodeURI という文字列はないですねぇ。なんとなく以下のコードがそれっぽいんですけど、意味がさっぱりわかりません。

// deleted these chars from the include list ”;”, ”/”, ”?”, ”:”, ”@”, ”=”, ”&” and #
// so that we could analyze actual URLs
var unsafeString = ”¥”<>%¥¥^[]`¥+¥$¥,”;
2008/10/05(日) 11:47:35 | URL | ArtSalt(管理人) #9qbqh80c[edit]
Web site (optional)
Comment - Need to type CAPTCHA, an image of distorted Japanese Hiragana or Katakana afterward.
Password - Not allowed to modify your comment later if password not entered.
On secret mode?
 

http://art2006salt.blog60.fc2.com/tb.php/842-4b45c5ac

このブログについて

最近のエントリ

カテゴリー
あわせて読みたいブログ

あわせて読みたい

最近のコメント
Internet Explorer
よりも便利です

Opera 9 - Always secure with Opera Firefoxをダウンロード!!

相互リンク