Ruby 使用gsub替换重音字符
这是我的密码:Ruby 使用gsub替换重音字符,ruby,unicode,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: i
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数据库。这两个链接有用吗
您可能还应该了解。您可以尝试放置
-Ku
#!/usr/bin/env ruby -Ku
text = File.read('file')
replace = text.gsub('hai', 'hǎi')
File.open('file1', "w") {|file| file.puts replace}
u
代表unicode。我以为你已经读到了:现在我得到了这个错误:替换的UTF-8(ArgumentError)中的无效字节序列。rb:4:in
,这是gsub
行。好吧,用你的例子我没有这个问题。升级时间到了?抱歉,我实际上将第4行更改为replace=text.gsub(“A;”,“A”)
,我认为这其中有一些字符需要转义?我实际上用1.8.7进行了测试。在我这边没有问题。