This link has been bookmarked by 1 people . It was first bookmarked on 28 Nov 2007, by Toshiro Shimura.
簡単に説明すると、例えば hxxk.jp 内のタグ "ビール" が設定された記事のように、 URI にマルチバイト文字列を含むリソースへのリンクを指し示したい場合、 hxxk.jp 内では <a href="http://hxxk.jp/tag/ビール">hoge</a> と記述してもリンク元もリンク先も UTF-8 であるので Firefox では無事に該当リソースに到達できますが、同じようなリンクを Shift_JIS のリソースに記述すると http://hxxk.jp/tag/%83r%81%5B%83%8B という URI としてエンコードされてしまい、該当リソースに到達することができません。 なお、文字コードが同じであれば該当リソースに到達することができますが、そもそも仕様上非 ASCII 文字列を URI に直接記述することはしてはいけません。
そこで、私が hxxk.jp 内でタグページへのリンクを記述する場合は <a href="http://hxxk.jp/tag/%E3%83%93%E3%83%BC%E3%83%AB">hoge</a> のようにあらかじめ UTF-8 でエンコードした状態で記述しています。 このようなリンクであれば仕様の面でも問題ありませんし、 Shift_JIS のリソースや EUC-JP のリソースに記述しても問題なく該当リソースに到達することができます。 ( よって、他の方がタグ "ビール" が設定された記事を参照したい場合も、 UTF-8 エンコード済の URI をコピーすることで問題なくリンクすることができます。 )
さて、ここで Firefox のアドレスバーに、 URI を直接入力してリソースを取得することを考えてみましょう。 現バージョンである Firefox 1.5.0.6 では、デフォルトでは network.standard-url.encode-utf8 の値は false になっていますので、アドレスバーにマルチバイト文字列を含む URI を入力すると Shift_JIS でエンコードされます。 すなわち、 http://hxxk.jp/tag/ビール とアドレスバーに入力しても http://hxxk.jp/tag/%83r%81%5B%83%8B という URI をリクエストした形になってしまいます。 そこで OpenCage: Firefox urlエンコード機能をUTF-8化する方法。を参考に network.standard-url.encode-utf8 の値を true にすると、 http://hxxk.jp/tag/ビール とアドレスバーに入力すると http://hxxk.jp/tag/%E3%83%93%E3%83%BC%E3%83%AB という URI をリクエストした形になり、無事に該当リソースに到達することができます。
Would you like to comment?
Join Diigo for a free account, or sign in if you are already a member.