使用gsub替换重音字符

时间:2011-04-24 14:51:27

标签: ruby unicode

这是我的代码:

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数据库。

2 个答案:

答案 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 codeBytes and characters in Ruby 1.8

您可能还应该了解the basics of Unicode