ruby - UTF-8 Ruby 中的无效字节序列

标签 ruby character-encoding ruby-2.0

我有这样的字符串 "abce\xC3".sub("a","A"),当我执行该行时出现以下错误。

ArgumentError: invalid byte sequence in UTF-8
    from (irb):20:in `sub'
    from (irb):20
    from /home/vijay/.rvm/rubies/ruby-2.0.0-p598/bin/irb:12:in `<main>'

谁能帮我解决这个问题。

最佳答案

Arie 已经回答了这个错误是因为无效的字节序列 \xC3

如果你使用的是Ruby 2.1+,你也可以使用String#scrub用给定的替换字符替换无效字节。这里:

a = "abce\xC3"
# => "abce\xC3" 
a.scrub
# => "abce�"
a.scrub.sub("a","A")
# => "Abce�"

关于ruby - UTF-8 Ruby 中的无效字节序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31272763/

相关文章:

ruby - 如何修复此错误 : kernel_require. rb :45:in `require' : cannot load such file?

ruby-on-rails - 无效 'retry' Ruby (/rails)

ruby-on-rails - Active Admin 嵌套模型未在编辑中填充

ruby-on-rails - rails : how to require files from lib folder in order to use them in controllers?

css - 如果 Bootstrap CSS 文件托管在本地,字形会损坏

Java char/int 转换困惑

ruby - 按 T​​AB 键,然后在带有 Ruby 的 Selenium WebDriver 中按 ENTER 键

python - Django small bytestrings on model,建模应该使用什么类型?

ruby - 为什么 ruby​​2.0 中 object_id 的 true 和 nil 变了?

ruby-on-rails - 可以让 Rails 4 在 Windows 上工作吗?