2003-09-02(火) [長年日記]
■ TrackBackの文字コード
今日のなんでやねん経由でいろいろ。
こういうものは、E-mailの文化を踏襲すればよろしい。E-mailは、発信側はプアな環境からでも出せるように文字コード決め打ちでもいいが、受信側はContent-Typeなどを見て可能な限り多くの形式のメールを受信/閲覧できるようにすべし(受け取る側をリッチにする)というルールで構築されていると読んだことがある(←例によって嘘かも知れない)。まともなMUAならISO-2022-JPだけでなくSJISやUTF-8、果ては読めもしねぇ外国語で送られて来たspamまでもちゃんと表示できるのは、そういう文化ゆえだ。もちろん、charsetがきちんと指定されているがゆえにできる芸当なわけだが。
MTが「おれたちは今後、UTF-8でTrackBackを送るぜ!」と決めるのはけっこう。しかし、他のツールが「まだUTF-8を生成するのは困難だからEUC-JPで送るよ」と言うのも受け入れるべきだ。仮に理解できない文字コードで送られて来ても、せめてURLくらいは表示するとかね。そのためには、デコードのヒントになるcharsetは、きちんと指定できるようになっていなくてはいけない。元の発想が相手に迷惑かけたくないというのであればなおのこと、charsetは指定すべきである。「外国の作者に説明するのが大変」なんてのは、これを拒否する理由にはならない。
■ TrackBackの文字コード(2)
blog.bulknews.netからの反応に対して。
「相手のためにcharsetを付けるべきだ」と言うのは、「相手に自分が理解できる文字コードかどうかを判断するヒントをあげよう」という意味。例えば(環境の問題等で)UTF-8を理解できないblogが、charset=UTF-8なTrackBackを受け取ったら、その時点でtitleやexcerptの情報を表示するのはあきらめて、URLだけ表示しようと判断できるということだ。ヒントがなければけっきょく自前で文字コードを判断しなくてはならず(現実的にUTF-8でない可能性も高いわけだし)、判断ミスで文字化け、という悲しい結末になりかねない。
逆にcharset指定をきちんと仕様化しておけば、あとは受け取る側のスペック次第になるので、送信側は好きな文字コードで送出できる。たとえ相手に理解できない文字コードでも、少なくともURLくらいは拾ってもらえるのであれば、TrackBack本来の目的は達成できる。charsetという最低限の約束を導入するだけで、UTF-8対応できないツールでも送信・受信とも可能になり、幸せの総量が多くなるのである。受信する側が複数のエンコードを受け取らざるを得ないという現状を認めるなら、ヒントを与える必要性も認めるべきだ。
なかださんが規格の段階から手を抜いちゃいけませんというのはつまり、裏を返せば「実装は手を抜いていい」ということでもある。しかし、「UTF-8で統一すれば実装が楽になる」なんてことが現実問題として成立しないのは、すでにUTF-8以外のTrackBackを飛ばすツールが多数存在するのを見れば明らか。だとすれば、実装で手を抜くためのヒントとしてのcharsetは、やはり規格として欠かせない存在だと思う。そうすれば「charsetを明示しないTrackBackのexcerptは表示しない」なんて選択も可能になる。「日本語しか読めないから外国語のTrackBackなんて受け付けないよ」なんて縛りだって実装可能だ:-)
……なんて書いてTrackBackを送ったら、すでにこちらの主張に近いところまで追記されていましたとさ。まぁいいか。
規格の段階から手を抜いちゃいけませんねぇ。
うぅ,オレはすぐに手を抜いちゃいます…
「送信側は厳密に,受信側は寛容に」という「文化」の存在は良く聞きますかね.
その理由は覚えていませんが.まともなものが元なら多少壊れても修復できるか
ら,っていうような感じだったような,そうではないような.
あー、そういうニュアンスのも聞き覚えがあるなぁ。むしろそっちか?
こうやってバリエーションが生まれるあたりが「文化」なんすかねぇ(笑)