【发布时间】:2015-08-19 10:07:13
【问题描述】:
我有一个编码为 ASCII-8BIT 的字符串:
str = 'quindi \xE8 al \r\ngoverno'
我想将其转码为 UTF-8,因为字符可视化没有问题。
当然,\xE8 不是 UTF-8 中的有效序列,所以当我尝试这样做时会出现错误:
str.encode 'utf-8'
返回:
UndefinedConversionError "\xE8" from ASCII-8BIT to UTF-8
阅读有关编码方法的文档,我想出了这个解决方案:
encode('UTF-8', invalid: :replace, undef: :replace)
这样,所有无效序列都将替换为?。但是如果我想显示正确的字符而不是?。我在这个文本中有不同的转义序列,\xE8,\xE0 ...
有没有办法用正确的转义字符自动替换它们?
【问题讨论】:
-
什么是正确的字符,即您的预期输出是什么?
-
类似于“è”。
标签: ruby-on-rails ruby encoding