読者です 読者をやめる 読者になる 読者になる

データベースに格納されたUnicodeエスケープ済み文字列を復元する方法

Ruby

MySQLに格納された文字列を確認しようと思ったら、Unicodeエスケープされていました。その文字列を以下のようなコードで復元しました。

require 'rubygems'
require 'active_record'

class Report < ActiveRecord::Base; end

ActiveRecord::Base.establish_connection(
  :adapter  => 'mysql',
  :host     => 'localhost',
  :database => 'myapp_production',
  :username => 'dbuser',
  :password => 'password'
)

report = Report.find(535)
str = report.contents

str.gsub!(/\\u([0-9a-f]{4})/) {
  [$1.hex].pack("U")
}

puts str

参考