青山です。

On Sat, 11 Mar 2000 12:10:02 +0900,
Wakou Aoyama <wakou / fsinet.or.jp> wrote:

> >   じゃあ、[c].pack("N") で十分ですかね? あとは Uconv かなんかで。
> 
> ちょうど、www.debian.org のトップページの各言語版へのリンク部分が
> #nnnnn 形式で書かれていて、Netscape4.7 では文字ばけ、Lynx では #nnnnn
> としていました。Mozilla5.0 では表示できましたが、まあ、やはりクライア
> ント依存ですよね。ライブラリだけでは対応不可能のように思われます。

とりあえず、例外があがるのは好ましく無いので簡易対応をしようと思います
が、通常は c.chr で、$KCODE が utf8 の場合は [c].pack("N") として、そ
れ以外の場合は lynx のように "#nnnnn" という感じで良いでしょうか?

if Integer($1) < 256
  Integer($1).chr
else
  if $KCODE[0] == ?u or $KCODE[0] == ?U
    [Integer($1)].pack("N")
  else
    "#" + $1
  end
end

"#nnnnn" を返すのは、元々そういう文字列があった場合との区別が付かない
のでライブラリとしてはあまり良くないですが、まあ、しばらくの間の間に合
わせとしては、こんな感じでしょうか。

本格的に対応する場合には、CGI::unescapeHTML(string){ #nnnnn に対する例
外処理 } のような感じになるんでしょうかね。あるいは、$KCODE に変換する
とか、対応文字コードを指定するとか、もう少し検討が必要でしょう。


-- 
青山 和光 Wakou Aoyama <wakou / fsinet.or.jp>