在解码中文文本时智能地忽略无法解码的字节?

2014-06-25 14:37:43 +08:00
 jokester
我想把一些中文文本(大体是gb2312/gbk/gb18030)转换到UTF8编码
这些文本中可能混入了一些错误的字节

我试过一种"贪婪的"解码方式: 在碰到(无法作为gb2312/gbk/gb18030解码的字节序列)时抛弃第一个未解码字节, 并重试解码.
这样确实能完成整个文件的解码.
但是有时会得到一串汉字乱码, 推测是碰到"无意义的汉字序列 但是是合法的汉字编码"

我怎样可以更智能地忽略错误字节, 并尽量解码成有意义的中文文本?

# 感觉这是个轮子级问题. 如果有现成的技术或实现就最好
3012 次点击
所在节点    问与答
2 条回复
kfll
2014-06-25 14:43:19 +08:00
iconv -c 么

-c When this option is given, characters that cannot be converted are silently discarded, instead of leading to a conversion error.
jokester
2014-06-26 12:03:15 +08:00
@kfll 对啊 解码成乱码的就这种

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/119454

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX