用自己写的一个正则表达式逐行匹配一个文件的内容的时,遇到中文就跳出错误:
test.rb:8:in `match': invalid byte sequence in GBK (ArgumentError)
from test.rb:8:in `block in <main>'
from test.rb:6:in `each'
from test.rb:6:in `<main>'
试过在代码文件第一行中加入:# -- coding:utf-8 -- 也试过 ruby 命令上加上:--encoding=utf-8 不能解决问题。想问下大家问题出在哪?怎么解决该问题。(刚开始学 ruby,大神们勿喷)
程序:
reg_ct = /create table ([a-z_]+)/
fr = "crebas.sql"
file = File.new(fr)
file.each do |line|
#puts line
if reg_ct.match(line)
puts line
else
puts line
end
end
file.close
环境: OS:win7 ruby: Ruby1.9.3