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查询,应该就能解决问题
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]