我正在解析CSV文件并转换为UTF-8中的每个元素:
CSV.foreach(@data_source, { :col_sep => ';' , quote_char: "\x00", :encoding => "CP850"}) do |row|
row.map! {|x| x.force_encoding('UTF-8') unless x.nil? ; x.scrub!("") unless x.nil? ; x.delete('\u2FEC') unless x.nil? }
end
然后脚本执行一系列计算,然后使用xlsx
gem以axlsx
格式保存数据。
我添加了x.delete('\u2FEC') unless x.nil?
,因为我发现在源文件中,这个奇怪的序列后来导致Excel中出现“不可读的内容”错误。
我发现它解决了“不可读的内容”问题但它不仅删除了"\u2FEC"
序列,还删除了字符"2"
的每一次出现。
您是否知道我如何摆脱 "\u2FEC"
而不是我行中的每个"2"
?
感谢。
答案 0 :(得分:3)
单引号字符串不支持Unicode转义。 (事实上,除了\'
和\\
之外,他们不支持任何转义。)
您需要使用双引号字符串或将字符直接输入单引号字符串而不是Unicode转义序列。