[#28653] create header (Re: Re: ossl_cipher.c:124: warning: control reaches end of non-void function) — "Nobuyoshi Nakada" <nobu@...>

なかだです。

8 messages 2006/05/18

[ruby-dev:28649] cgi.rbのUTF-8対応について

From: Fujioka <fuj@...>
Date: 2006-05-18 05:58:14 UTC
List: ruby-dev #28649
藤岡です。

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

In This Thread

Prev Next