论坛首页 入门技术论坛

ruby 使用csv读取文件问题

浏览 3773 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-03-05   最后修改:2011-03-05

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

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

readdata.rb文件内容如下

File.readlines("data.txt").each do |line|
    puts line
end

在控制台下得到的结果正常

 

readdata_csv.rb文件内容如下

 

require 'csv'

CSV.open("data.txt","r").each do |person|
    puts person.inspect
end

在控制台下得到的结果中文乱码

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

 

如果将代码改为

 

require 'csv'

people=CSV.parse(File.read('data.txt'))
puts people
 

此时得到的结果正常,比较困惑。

   发表时间:2011-03-07  
blessdyb 写道

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

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

readdata.rb文件内容如下

File.readlines("data.txt").each do |line|
    puts line
end

在控制台下得到的结果正常

 

readdata_csv.rb文件内容如下

 

require 'csv'

CSV.open("data.txt","r").each do |person|
    puts person.inspect
end

在控制台下得到的结果中文乱码

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

 

如果将代码改为

 

require 'csv'

people=CSV.parse(File.read('data.txt'))
puts people
 

此时得到的结果正常,比较困惑。


查了一下,引入jcode这个库就正常了,读出来了\345....都是八进制的数字,转成16进制再转码就是原来的中亠了
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics