[前][次][番号順一覧][スレッド一覧]

rails:1327

From: Fujioka <fuj@r...>
Date: Sun, 09 Jul 2006 23:54:50 +0900
Subject: [rails:1327] Re: FORMから送られてくる日本語処理について

fujiokaです。

>> お聞きしたいのですが、UTF-8でフォームを作った場合に、
>> どうやったらUTF-8以外でデータをPOSTできるのですか?
> 
> 
> euc-jpでフォームを作ったときにshift_jisやutf-8で
> データが送られてくるという現象は実際にありました。
> それは前回のメール書いた通りです。なので、どうやったら
> UTF-8以外でデータがPOSTできるのかという疑問については
> 私は方法を知りませんが、現象として対応せざる得なかったことが
> あるという事は理解してください。
> 
私も実は以前にPOSTされたデータが自動的にエンコードされたら
便利だと思い、rubyのcgi.rbのパッチを作ったことがあります。
どういうものかというと、入力データは$KCODEで指定しているものに
エンコードし、OUTPUTはcharsetでしてしたものにエンコードすると
いうものです。OUTPUTはutf8への対応分だけのパッチです。
これをRailsのプラグインにというのはまだ不勉強なのでわかりません。

--- cgi.rb.org	2006-07-09 23:28:11.358893908 +0900
+++ cgi.rb	2006-07-09 23:36:03.482844946 +0900
@@ -716,6 +716,10 @@
       when /shift_jis/ni
         content = NKF::nkf('-s', content)
         options["language"] = "ja" unless options.has_key?("language")
+      when /utf-8/ni
+	require 'kconv'
+        content = content.toutf8
+        options["language"] = "ja" unless options.has_key?("language")
       end
     end

@@ -895,6 +899,19 @@

     query.split(/[&;]/n).each do |pairs|
       key, value = pairs.split('=',2).collect{|v| CGI::unescape(v) }
+      case $KCODE
+      when /^E/i
+	require 'kconv'
+	value=value.toeuc
+      when /^J/i
+	require 'kconv'
+	value=value.tojis
+      when /^S/i
+	require 'kconv'
+	value=value.tosjis
+      when /^U/i
+	require 'kconv'
+	value=value.toutf8
+      else
+	value=value
+      end
       if params.has_key?(key)
         params[key].push(value)
       else


--
ML: rails@r...
使い方: http://QuickML.com/

[前][次][番号順一覧][スレッド一覧]

      1315 2006-07-08 04:41 [daisaito@l...       ] FORMから送られてくる日本語処理について  
      1316 2006-07-08 11:41 ┣[someeda@g...        ]                                       
      1317 2006-07-08 13:25 ┃┗[daisaito@l...       ]                                     
      1318 2006-07-08 14:49 ┃ ┗[fuj@r...            ]                                   
      1319 2006-07-08 15:53 ┃  ┗[daisaito@l...       ]                                 
      1320 2006-07-08 16:09 ┃   ┣[bsdmad@g...         ]                               
      1321 2006-07-08 17:32 ┃   ┃┗[daisaito@l...       ]                             
->    1327 2006-07-09 16:54 ┃   ┗[fuj@r...            ]                               
      1322 2006-07-07 18:40 ┗[y-yamasaki@s...     ]                                       
      1326 2006-07-09 12:21  ┗[daisaito@l...       ]