[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: cannot follow link
- From: hsaka@xxxxxxxxxxxxxxxxx (Hironori Sakamoto)
- Date: Sun, 1 Apr 2001 16:24:26 +0900 (JST)
- X-ml-name: emacs-w3m
- X-mail-count: 00413
坂本です。
> From: ari@mbf.sphere.ne.jp (Akihiro Arisawa)
> > 特殊文字(<, >, ", &)は & で実体参照してエスケープします。
> # href 属性の場合は属性値は URI なので事情が変わりますよね。
> # " は URI では %22 と encode しなきゃいけないから、
> # <a name="hoge"hoge" href="#hoge%22hoge"> とかが正しいのかな。
href="#hoge"hoge" でも name="hoge%22hoge" でもかまいませんが、
現在の w3m 本体(や手元の lynx-2.8.2dev.2, nesscape-4.07 )は、
name/href 属性の hoge"hoge と hoge%22hoge は別のものとみなして
しまいます。
HTML の & での実体参照は文字コード(エンコーディング法)に依存しない、
すなわち文字集合(=Unicode)中の文字を直接指定するのに対し、
URI の % でのエンコードは文字コードに依存する、すなわちバイト値を
直接指定します。
# " (") は Unicode の 0x0022 だが文字列中のバイト値
# として 0x22 だけで表わされるとは言えないし、
# %22 は文字列中のバイト値 0x22 だが Unicode の 0x0022 を表す
# とは言えないということ。
従って、(リモートの locale に依存するかもしれない) URI 中では
% を使うべきですし。URI 中で fragment (label) 部分で指定される
name 属性の値も % を使うべきです。
# URI 中の path 部分は リモートの locale の文字コード扱いで
# fragment 部分(name 属性)はドキュメントの文字コード扱いなんでしょうね。
# この辺りを考慮したのか、HTML の id 属性の値は
# REC-html40/types.html#type-id では、
# ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed
# by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"),
# colons (":"), and periods (".").
# となっていますね。(NAME は name 属性とは関係なし)
-------------------------------------------
Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
http://www2u.biglobe.ne.jp/~hsaka/