ruby 1.9.2.rc2, Rails3 beta4에서 한글입력 처리하기

37 views
Skip to first unread message

Jai-Gouk Kim

unread,
Jul 23, 2010, 4:41:20 AM7/23/10
to 한국 루비 사용자 모임
dev 모드에서 영어만 쓰다가 폼에서 한글 입력을 했더니,
에러가 나서 오늘 하루 종일 머리를 싸매고 있었습니다.
이런저런 글에 낚여서 시간을 보내다가 제대로 동작하길래
올려봅니다.

저의 경우는 UTF-8 인코딩을 기본으로 했었는데
막상 폼에서 한글을 입력해서 넘어오는 스트링이 ASCII-8BIT으로만
넘어왔습니다.

======================================

class ApplicationController < ActionController::Base
helper :all # include all helpers, all the time
protect_from_forgery # See
ActionController::RequestForgeryProtection for details
layout 'application'

helper_method :current_order
# before_filter :force_utf8_params

def force_utf8_params
traverse = lambda do |object, block|
if object.kind_of?(Hash)
object.each_value { |o| traverse.call(o, block) }
elsif object.kind_of?(Array)
object.each { |o| traverse.call(o, block) }
else
block.call(object)
end
object
end
force_encoding = lambda do |o|
o.force_encoding(Encoding::UTF_8) #if o.respond_to?
(:force_encoding)
o.gsub!(/[^\x20-\x7e]/,'')

end
traverse.call(params, force_encoding)
end

end

end

Reply all
Reply to author
Forward
0 new messages