visionmedia-google-searchがmultibyte文字に対応してなかったので対応させる
def self.url_encode string
string.to_s.gsub(/([^ a-zA-Z0-9_.-]+)/n) {
'%' + $1.unpack('H2' * $1.size).join('%').upcase
}.tr(' ', '+')
end
utf-8は3byteなのでunpack('H2')だと最初の1byteしかひろってくれない
下のようにして対応できた
def self.url_encode string
string.to_s.gsub(/([^ a-zA-Z0-9_.-]+)/) {
'%' + $1.unpack('H*')[0].scan(/../).join('%').upcase
}.tr(' ', '+')
end
No comments:
Post a Comment