中关村村草 发表于 2011-03-11 11:55

ruby 使用csv读取文件问题

ruby 使用csv读取文件问题


data.txt文件内容如下[文件编码为utf-8]

张三,12,m
李四,22,f

readdata.rb文件内容如下

Ruby代码1.File.readlines("data.txt").each do |line|   
2.    puts line   
3.end在控制台下得到的结果正常



readdata_csv.rb文件内容如下



Ruby代码1.require 'csv'
2.
3.CSV.open("data.txt","r").each do |person|   
4.    puts person.inspect   
5.end在控制台下得到的结果中文乱码

["\345\274\240\344\270\211", "12", "m"]
["\346\235\216\345\233\233", "22", "f"]



如果将代码改为



Ruby代码1.require 'csv'
2.
3.people=CSV.parse(File.read('data.txt'))   
4.puts people此时得到的结果正常,比较困惑。


查了一下,引入jcode这个库就正常了,读出来了\345....都是八进制的数字,转成16进制再转码就是原来的中亠了

2gua 发表于 2011-03-11 17:05

村艹真的辛苦啦。
页: [1]
查看完整版本: ruby 使用csv读取文件问题