[Date Prev][Date Next][Thread Prev][][Date Index][Thread Index]

Re: [w3m-dev 03918] Re: charset attribute of anchor tag



>> On Thu, 19 Jun 2003 23:15:24 +0900 (JST)
>> patakuti@t3.rim.or.jp said as follows:

>A要素の charset 属性って、リンク先の文書の符号化方法を指定するための
>ものですよね??

すみません.勘違いしていました.

まず第一に,畑口さんの指摘の通り,charset 属性はリンク先文書の文字コー
ドを与えるための属性です.

http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/cover.html で公開さ
れている HTML4 規格の邦訳によると,

web> charset = charset [CI]
web>     この属性は、当該リンクが指し示すリソースの文字符号化方法を指
web>     定する。詳しくは文字符号化方法の項を参照されたい。

ということですから.

更に,RFC2396 によると,

rfc> 1.5. URI Transcribability
rfc> (snip)
rfc> A URI is a sequence of characters from a very limited set,
rfc> i.e. the letters of the basic Latin alphabet, digits, and a few
rfc> special characters.

と書かれていますので,現時点では non-ASCII character を含む URI は規格
外だと思います.したがって,何らの動作の保証もないことになります.

そのような状況下で,それでも non-ASCII character を含む URI が与えられ
た場合は,どうすればよいでしょうか.

1つは,そのような URI は無効だとエラーを出力することでしょう.それは1
つの見識ですが,実際問題としては不便です.

2つは,なるべく広い範囲で動く方法で対処することです.この場合,URI に
含まれている non-ASCII 文字は適当な文字コード系にしたがって octet 列に
変換し,それらを escape してから,相手サーバーに送信する必要があります.

ここで厄介なのは,相手サーバーで URI のために使われている文字コード(一
般的には,相手サーバーで利用されているファイル名の文字コード)を,相手
サーバーとの通信以前に予想しなければならない,ということです.これは大
変に厄介な問題ですが,その URI が記載されているページの作者の知識,言
い換えれば,記載されているページ自体の文字コードであるとか,そのアンカー
の charset 属性に手掛かりを求めることは,それなりに可能性の高い方法だ
と思います.

というわけで,私は勘違いはしていましたが,実際に動作するプログラムとし
てはそれなりの実装かなあ,と思っていますがどうでしょうか.

-- 
土屋 雅稔 ( TSUCHIYA Masatoshi )