ruby 查询mysql输出乱码,求解解决思路

ruby 查询mysql输出乱码,求解
RT.求解决方法,谢谢。

# encoding: utf-8

require 'mysql'

conn = Mysql.real_connect("127.0.0.1", "root", "123456")
conn.query('USE test;')
conn.query('set names utf8;');

db = conn.query("SELECT * FROM admin_role;")
while row = db.fetch_row() do
  puts row[1]
end


输出:

瓒呯骇绠$悊鍛�
璐㈠姟-绠$悊鍛�
鍚堜綔浼欎即
杩愯惀-鏅�鍛樺伐
杩愯惀-楂樼骇绠$悊鍛�
鏁版嵁鍒嗘瀽涓荤
璐㈠姟-鏅�鍛樺伐
琛屾斂缁忕悊
瀹㈡湇-鏅�鍛樺伐
PHP寮�彂宸ョ▼甯�
鐢靛瓙鍟嗗姟-绠$悊鍛�
鐢靛瓙鍟嗗姟-鏅�鍛樺伐
杩愮淮宸ョ▼甯�
閿�敭-楂樼骇绠$悊鍛�
搴楅暱
鐢靛瓙鍟嗗姟-楂樼骇绠$悊鍛�
璐㈠姟-楂樼骇绠$悊鍛�
閿�敭-绠$悊鍛�
閿�敭-鏅�鍛樺伐
瀹㈡湇-绠$悊鍛�
杞︾-鏅�鍛樺伐
杞︾-楂樼骇绠$悊鍛�
------解决方案--------------------
开始加如下代码试试:

[ STDIN, STDOUT, STDERR ].each do 
------解决方案--------------------
stdio
------解决方案--------------------

stdio.set_encoding(Encoding.locale_charmap, 'utf-8')
end

------解决方案--------------------
conn.query('set names gbk;');   #is that right ?