【问题标题】:Encoding UTF-8-BOM Ruby编码 UTF-8-BOM Ruby
【发布时间】:2017-09-28 09:25:08
【问题描述】:

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

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

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

【问题讨论】:

  • 您是否只想知道文件是否有/以 UTF-8 BOM 开头?

标签: ruby encoding


【解决方案1】:

“UTF-8-BOM”编码是什么意思?事实上,它是一种普通的老式“UTF-8”编码,只是在前面加上字节顺序标记 (EF BB BF)。BOM 对 UTF-8 没有没有影响。不推荐在 UTF-8 中使用 BOM。总结一下:没有这样的编码,有一个字节序标记应该有助于识别编码的字节序。

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

如果您想检查文件是否有 BOM,请从中读取 3 个字节并将它们与 EF BB BF 进行比较。

【讨论】:

    猜你喜欢
    • 2020-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-09
    • 1970-01-01
    • 1970-01-01
    • 2015-11-11
    相关资源
    最近更新 更多