这是我的代码:
text = File.read('/Users/username/Desktop/text.txt')
replace = text.gsub('hai', 'hǎi')
File.open('/Users/username/Desktop/text.txt', "w") {|file| file.puts replace}
我正在尝试从终端运行此脚本,但它会出现此错误:
XXXX:Desktop username$ ruby replace.rb
replace.rb:2: invalid multibyte char (US-ASCII)
replace.rb:2: invalid multibyte char (US-ASCII)
replace.rb:2: syntax error, unexpected $end, expecting ')'
replace = text.gsub('hai', 'hǎi')
^
我实际上想在CSV文件中用重音字符替换大量字符,稍后将其导出到我的MySQL数据库。
答案 0 :(得分:2)
你可以试试-Ku
#!/usr/bin/env ruby -Ku
text = File.read('file')
replace = text.gsub('hai', 'hǎi')
File.open('file1', "w") {|file| file.puts replace}
答案 1 :(得分:0)
这两个链接有帮助吗? Unicode strings in Ruby code,Bytes and characters in Ruby 1.8
您可能还应该了解the basics of Unicode。