ruby - 如何让 iconv 忽略编码错误?

标签 ruby encoding iconv

我有一个长文本文件,其中包含一些无效的 UTF-16 编码字符。到目前为止,我一直在尝试使用以下代码对其进行转换:

ic = Iconv.new( 'UTF-8//IGNORE', 'UTF-16' )
urf_8_str = ic.iconv( an_invalid_encoded_utf_16_string )

我得到一个 Iconv::InvalidCharacter 异常。

我使用的是 OS X 10.6(因为 iconv 实现在 Mac 机器上似乎有点特殊)和 Ruby 1.8

你知道用 Ruby 转换带有无效字符的字符串的方法吗?

谢谢!

最佳答案

ic = Iconv.new( 'UTF-8//IGNORE', 'UTF-16' )
urf_8_str = (ic.iconv(bad_string) rescue 'oops, bad encoding')

关于ruby - 如何让 iconv 忽略编码错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3866036/

相关文章:

c++ - Linux 上的 iconv() 32 位与 64 位

r - 由于 "undefined reference to ` libiconv'",安装 R 失败

ruby - 如何理解 Ruby 计算中的对象、方法和参数

ruby - 如果 'require sinatra' 在另一个文件中,为什么 sinatra 不会加载?

encoding - 为什么不使用base128?

python - 如何添加/替换/删除字符串中的转义字符 - Python

function - 在 Arch/manjaro 上安装 iconv

ruby-on-rails - .seek 在 ruby​​ 中是什么意思

ruby-on-rails - Ruby on Rails - 如何使 .where 方法不区分大小写

c# - 如何设置IIS网站的默认编码?