查看完整版本: 字符转换。用rails写的脚本看正常显示。Ruby调用mysql,写文件,文件中有乱码

nintyuui 2008-8-12 16:15

字符转换。用rails写的脚本看正常显示。Ruby调用mysql,写文件,文件中有乱码

使用Mysql作为我的数据库。Mysql的表用utf8-unicode-ci。数据时德语。用Mysql admin tool 看数据,都是正常的德语。用rails写的脚本看,也是正常的。
但是,用ruby调用mysql,然后写入一个文件,打开文件,发现文件中的德语就有乱码了。

请教!

程序如下:
dbh = Mysql.real_connect('localhost','root','','ebay_tools')
          sql = "select * from case_parameters where case_name='" + case_name + "' and site_id=" + site_id
          res = dbh.query(sql)
          @create_parameters = File.new(selenium_filename, 'w+')
          @create_parameters.puts parameters_head
          res.each do |row|
             param_name = row[3].strip
             param_value = row[4].strip
             #param_name = Iconv.iconv("UTF-8","UTF-8",row[3])
             #param_value = Iconv.iconv("UTF-8","UTF-8",row[4])
             #puts param_name
             #puts param_value
             body = "<tr>
                         <td>store</td>
                         <td>#{ param_value}</td>
                         <td>#{ param_name}</td>
                     </tr>"
              @create_parameters.puts body
          end # end res
          res.free                     
          @create_parameters.close
          dbh.close

Hozaka 2008-8-19 00:17

数据本身没有错误,在调用查询之前先执行[code]SET NAMES 'UTF8'[/code]然后再执行SQL查询,应该就能解决问题

瀛州司马 2008-9-4 13:31

你以为php阿 set names

Hozaka 2008-9-5 02:36

[quote]
你以为php阿 set names
[/quote]
和 PHP 有什么关系,这是 MySQL 的命令,参考 MySQL 5.0 手册
[url]http://dev.mysql.com/doc/refman/5.0/en/charset-connection.html[/url]
页: [1]
查看完整版本: 字符转换。用rails写的脚本看正常显示。Ruby调用mysql,写文件,文件中有乱码