Sim*_*ity 18 ruby error-handling utf-8
我正在尝试运行Ruby脚本,并且总是在这一行上出错:
file_content.gsub(/dr/i,'med')
Run Code Online (Sandbox Code Playgroud)
我试图用"med"代替"dr".
错误是:
program.rb:4:in `gsub': invalid byte sequence in UTF-8 (ArgumentError)
Run Code Online (Sandbox Code Playgroud)
为什么,我该如何解决这个问题?
我正在使用Ruby 2.2.1p85开发MAC OS X Yosemite机器.
jon*_*now 20
可能你的字符串不是UTF-8格式,所以请使用
if ! file_content.valid_encoding?
s = file_content.encode("UTF-16be", :invalid=>:replace, :replace=>"?").encode('UTF-8')
s.gsub(/dr/i,'med')
end
Run Code Online (Sandbox Code Playgroud)
请参阅" Ruby 2.0.0 String#Match ArgumentError:UTF-8中的无效字节序列 ".
| 归档时间: |
|
| 查看次数: |
31092 次 |
| 最近记录: |