编码UTF-8-BOM Ruby

时间:2017-09-28 09:25:09

标签: ruby encoding

我正在尝试在Ruby中识别文件编码。

file = File.open("filePath", "rw");
file.encoding;

但即使我的文件采用这种编码,我也无法获得UTF-8-BOM编码。我得到的一切都不是UTF-8-BOM。 在ruby中可能不支持UTF-8-BOM编码吗?我不需要打开或读取文件,但要确定其编码类型。

1 个答案:

答案 0 :(得分:2)

“UTF-8-BOM”编码是什么意思?事实上,这是一个简单的旧的“UTF-8”编码,只是前缀了字节顺序标记(EF BB BF。)BOM对UTF-8有无影响。建议不要使用UTF-8中的BOM。总结:没有这样的编码应该有字节顺序标记来帮助识别编码字节顺序。< / p>

File.open是通用流读取器,它没有任何建议,可能会被告知使用显式编码(对单字节编码很有用),它可能会确定编码的字节顺序,基于在BOM上(对于固定宽度的unicode编码很有用。)

如果要检查文件是否包含BOM,请从中读取3个字节,并将其与EF BB BF进行比较。