【发布时间】:2011-05-18 08:58:44
【问题描述】:
我在 ruby on rails 中遇到了一个奇怪的问题
有一个用 Excel 2003 制作的 csv 文件。
5437390264172534;Mark;5
我有一个带有上传输入的页面,我像这样读取文件:
file = params[:upload]['datafile']
file.read.split("\n").each do |line|
num,name,type = line.split(";")
logger.debug "row: #{num} #{name} #{type}"
end
等
所以。最后我得到了以下内容:
数字 = 5437...2534 名称 = 标记 类型 = 5
为什么 num 有这么奇怪的值?
我也尝试过这样做:
str = file.read
csv = CSV.parse(str)
csv.each do |line|
RAILS_DEFAULT_LOGGER.info "@@@@@@@@ #{line.to_yaml}"
end
但我又得到了
@@@@@@@@ --- - !str:CSV::Cell "5437...2534;Mark;5"
win1251 中的 csv 文件(我无法更改文件编码) UTF8 格式的 ruby 文件
红宝石版本 1.8.4 轨道版本 2.0.2
【问题讨论】:
-
忘记写了:file = params[:upload]['datafile']