藤岡です。
cgi.rbではEUC-JPやShift_JISなどはcharsetを見て
出力を適切なコードに変換するようですが、
これはUTF-8には対応していないようです。
ソースを見ると、NKFで変換しているだけのようですので、
以下のようにUTF-8にも対応していていただけると
ソースをEUCで書いて、出力をUTF-8にしている人は
幸せかもしれません。と思って書いてみました。
もし、NKFがUTF-8に対応していない場合はどうなるかというと、
テスト結果はwオプションを無視するだけでしたので、
NKFのUTF-8対応されていないマシンでもUTF-8にならないだけで、
例外の発生にはならないので、問題は起こらないかと思います。
Vine-2.6(ruby-1.6.7,nkf-1.92)で実験してみました。
いかがでしょうか。
$ diff -uNr cgi.rb.org cgi.rb
--- cgi.rb.org 2005-10-01 00:01:11.000000000 +0900
+++ cgi.rb 2006-05-18 14:40:51.097041304 +0900
@@ -716,6 +716,9 @@
when /shift_jis/ni
content = NKF::nkf('-s', content)
options["language"] = "ja" unless options.has_key?("language")
+ when /utf-8/ni
+ content = NKF::nkf('-w', content)
+ options["language"] = "ja" unless options.has_key?("language")
end
end
--
fujioka
|
Try Searching:
servers, voip, java, networking, microsoft ...
|
|
|
|