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... ]