ruby操作数据库的问题

我用sequel操作数据库(sqlite3),存入的数据都是utf8格式(通过sqlite developer或者rails),现在,我在本地建立一个ruby文件,内容如下:
[code="ruby"]
require 'sequel'
DB = Sequel.sqlite('rails.db')
items = DB[:items]
items.each do |item|
p item[:name]
end
[/code]
得到的内容是
C:>ruby demo.rb
"abc"
"def"
"ghi"
"\345\223\210\345\223\210"
"\u54c8"

这些字符其实是汉字的utf8显示,我怎么才能让这些字符显示出来呢?

将字符串编码改成系统编码(中文windows控制台一般是GB2312或者GBK)

在ruby 1.8,用iconv:
[code="ruby"]
require 'iconv'
p Iconv.conv('gbk','utf-8',item[:name]))
[/code]

在ruby 1.9,用encoding:
[code="ruby"]
p item[:name].encode(Encoding.default_external)
[/code]

如果嫌每次都转码不方便,可以
[code="ruby"]
require 'iconv'
def echo something
if something.nil?
p nil
else
p Iconv.conv('gbk','utf-8',something.to_s)
end
end
[/code]
以后就用echo输出编码为utf-8的。

还有一种办法是输出到文件中去,然后用支持UTF-8编码的编辑器打开,就能看到了。

另外Firefox有一个插件sqlite manager,可以方便的查看和操作sqlite3数据库