[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [w3m-dev 03918] Re: charset attribute of anchor tag
白井です。はっきりさせるために規格書の引用ばっかりですが。
From: patakuti@t3.rim.or.jp さん曰く
Subject: [w3m-dev 03918] Re: charset attribute of anchor tag
Message-ID: <20030619231524G.patakuti@t3.rim.or.jp>
Date: Thu, 19 Jun 2003 23:15:24 +0900 (JST)
> > この変更が適用されている w3m と,CVS 幹先端の emacs-w3m を使うと,
> >
> > <a href="どこか/を/指す/日本語/の/URI" charset="shift_jis">
> >
> > というようなリンクが辿れるようになります.
>
> なんで、辿れるようになっちゃうのでしょうか?
>
> A要素の charset 属性って、リンク先の文書の符号化方法を指定するため
> のものですよね??
そのようですね。HTML4.1 12.2 A要素(なんで日本語なんだ ^^;)
>> charset = charset [CI]
>> This attribute specifies the character encoding of the resource
>> designated by the link. Please consult the section on character
>> encodings for more details.
>>
>> この属性は、当該リンクが指し示すリソースの文字符号化方法を指定
>> する。詳しくは文字符号化方法の項を参照されたい。
ですよ。> (どっか行っちゃったのかな?)土屋さん
href = uri [CI] の方をたどると、
B.2.1 Non-ASCII characters in URI attribute values
に行き着いて、
>> B.2.1 URI属性値の非ASCII文字
>>
>> URIには非ASCII値が含まれない ([URI]の2.1を参照)とはいえ、HTML文
>> 書の著者が、URI属性値 (DTD中で%URI;と定義されている値)のつもりで
>> 非ASCIIの値を指定する場合があり得る。例えば、次の href属性値は不
>> 正である。
>>
>> <A href="http://foo.org/H(a の上にちび○)kon">...</A>
>>
>> こうした場合に非ASCII文字を扱うため、ユーザエージェントが次の規
>> 則に従うことを推奨する。
>>
>> 1. 与えられた各文字を、UTF-8 ([RFC2279]参照)の1バイトあるいは
>> 複数バイトで表現する。
>>
>> 2. URIのエスケープ機構により、このバイトをエスケープする。す
>> なわち、各バイトをバイト値の十六進表現HHを用いて「%HH」で表
>> す。
>>
>> この変換規則に従うと、 [RFC1738]の2.2あるいは[RFC2141]の2が定め
>> るシンタクス的に正当なURIが得られる。得られるURIは、HTML文書が符
>> 号変換され得る文字符号化方法に依存しない形式である。
>>
>> 注意。古いユーザエージェントの中には、HTMLのURIを、当該文書の文
>> 字符号化方法をそのまま適用して処理するものもある。また、古いHTML
>> 文書の中にはこうした処理方法に依存しているため、符号変換に際して
>> 破綻するようなものもある。そうした古い文書を処理するユーザエージェ
>> ントは、正当な文字集合の範囲にない文字を含むURIを受け取った場合、
>> まず初めにUTF-8に基づく変換を試みねばならない。そして変換結果が
>> 巧く扱えないものである場合のみ、当該文書の文字符号化方法のバイト
>> に基づくURIの変換を試みるようにしなければならない。
ですって。
じゃぁ、emacs-w3m ではどうすれば良いのか? は、また来週。
--
白井秀行 (mailto:shirai@rdmg.mgcs.mei.co.jp)