我正在从远程源读取数据,偶尔会得到另一种编码的一些字符。它们并不重要。
我想得到一个“最佳猜测”utf-8 字符串,并忽略无效数据。
主要目标是获得一个我可以使用的字符串,并且不会遇到以下错误:
- 编码::UndefinedConversionError: "\xFF" 从 ASCII-8BIT 到 UTF-8:
- utf-8 中的字节序列无效
我以为就是这样:
string.encode("UTF-8", :invalid => :replace, :undef => :replace, :replace => "?")
将用“?”替换所有已知的。
忽略一切未知数,:replace => ''
:
string.encode("UTF-8", :invalid => :replace, :undef => :replace, :replace => "")
Edit:
我不确定这是否可靠。我已经进入偏执模式,并一直在使用:
string.encode("UTF-8", ...).force_encoding('UTF-8')
脚本似乎正在运行,现在可以了。但我很确定我之前就犯过错误。
Edit 2:
即使这样,我仍然会遇到间歇性错误。请注意,不是每次都会。偶尔而已。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)