文本编码检测与正则表达式基础
一、文本编码检测
在处理文本时,遇到无效字节序列是很常见且令人沮丧的问题。尤其是当文本经过多个环节流转时,比如从用户电脑到网页浏览器,再到网页应用程序,进入数据库,导出为 CSV 文件或其他格式,最后进入我们的程序,每个环节都可能引入编码错误。
1. 检测编码的必要性
我们通常处理的是已知字符格式的转换,但有时我们并不知道具体的编码格式,这时就需要猜测字符编码。理想情况下,我们希望能猜测文本的编码,如果不是 UTF - 8,就将其转换为 UTF - 8。虽然这只是猜测,不能保证 100% 准确,但很多时候这是我们所需或所能做的,值得一试。
2. 使用 Charlock Holmes 库
在 Ruby 中,我们可以使用 Charlock Holmes 库来进行编码猜测。它是由 Brian Marino 开发的,封装了成熟的国际组件 Unicode(ICU)库。
安装方法和其他 Ruby gem 一样,gem 名称是 charlock_holmes 。安装好该库及其依赖的 ICU 库后,使用起来很简单。通常我们会使用它为 String 类添加的方法。
以下是使用示例:
require "charlock_holmes/string"
string = "H\xC3\xABll\xC3\xB8 w\xC3\xB4rld"
string.detect_encoding
# => {:type=>:text, :encodin
超级会员免费看
订阅专栏 解锁全文
1274

被折叠的 条评论
为什么被折叠?



