mieki256's diary



2004/06/25(金) [n年前の日記]

#3 [web] _TAG index/URLエンコード・デコードフォーム

<a name="二バイト文字で書かれた単語"> とか書いてる人がたまに居るんだけど。アレって問題はないのかしら。今回、 _こちらの方のページ にリンクしようとして不安になってしまったのだけど。いや、Windows + IE で閲覧だけする分にはジャンプできてますけど。 *1 どこかにこのあたりの仕組み・仕様を解説してるページがないものか。結構ブラウザが吸収してくれるのかな。だとすれば、かえってエンコードして記述しちゃうほうがまずいのか。でも、wikiとかはエンコードしたURLになってたりするし。うーん。
*1: hnf は euc-jp で記述してるから不安なのであります。と思ったけど、Windows + IE(Sleipnir)で見てる分にはジャンプできてる。先ほど導入したCygwin+w3mで見てみた。こっちはそこに飛ばない、が、元々飛ぶブラウザなのかどうかもわからないし。このページのHTMLソース中には、eucで二バイト文字が書かれてる。リンク先はJISで書かれてるみたいだ。

この記事へのツッコミ

Re: TAG index/URLエンコード・デコードフォーム by こぶん    2004/06/27 11:41
W3C勧告では、アンカー名(A要素のname属性、id属性)はASCII文字に限ることになってます。
非ASCII文字(不正なURI)が用いられていた場合にブラウザは、与えられた文字をUTF-8で表現し、そのバイトをURIエスケープする。という規則が推奨されています。
要するに、仮名漢字で指定されたアンカーやファイル名に飛べないものだと思ってかかれということです。
Re: TAG index/URLエンコード・デコードフォーム by mieki256    2004/06/28 01:16
> アンカー名(A要素のname属性、id属性)はASCII文字に限る
> 要するに、仮名漢字で指定されたアンカーやファイル名に飛べないものだと思ってかかれということ

ああ、やはり、そんな感じでありましたか。
おかげさまで、疑問氷解。すっきりしたでありますです。(´▽`)

> ブラウザは、与えられた文字をUTF-8で表現し、そのバイトをURIエスケープする

ということは、今のブラウザはそういった動作をしてるから、
非ASCII文字を使っても結構イケちゃうときがある、ということですかな。

このあたり、HTMLページ作成ツールの類で
サポートしておくべき内容なんだろうなぁ。
アンカー名に非ASCII文字が使われていたら警告を表示するとか。
いや、一通り出来てからチェックするツール・ページもありますけど。
http://openlab.ring.gr.jp/k16/htmllint/htmllint.cgi
とか。

う。日記ページをチェックしたら凄い事になった… orz
Re: TAG index/URLエンコード・デコードフォーム by こぶん    2004/06/29 11:44
補足です。
>> 要するに、仮名漢字で指定されたアンカーやファイル名に飛べないものだと思ってかかれということ
「文字コード」が異なる場合、仮名漢字で指定されたアンカーやファイル名に飛べないと思ってかかれ です。

IEだと仮名漢字で指定されたアンカーに大抵飛べるのは
1.ページ読み込み
2.文字コードを認識し、内部的におそらくUTF-8へ変換
3.アンカーへジャンプ
という手順をとっているからだと思われます。
そして、Mozillaなどが文字コードが一致していない場合に指定したアンカーへ飛べないことがあるのは、おそらくW3C勧告で推奨されている手順をそのまま使っているため、同じ文字であっても文字コードが異なればURIエスケープした結果が違うものになってしまうことによるものでしょう。
Re: TAG index/URLエンコード・デコードフォーム by mieki256    2004/07/01 17:56
> IEだと仮名漢字で指定されたアンカーに大抵飛べるのは〜

> おそらくW3C勧告で推奨されている手順をそのまま使っているため〜

なるほど。すると、W3C勧告の手順のほうが、
穴がありそうということですかね…。
さすが、腐っても(?)IE、というところでしょうか<なんか違う気が…

以上です。

過去ログ表示

Prev - 2004/06 - Next
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project