このマニュアルは既にメンテナンスが終了したバージョンの Ruby を対象としています。 最新版のマニュアルへ

Ruby 3.0 リファレンスマニュアル

instance method IO#set_encoding_by_bom

set_encoding_by_bom -> Encoding | nilRuby 2.7.0 から[permalink][rdoc][edit]

BOM から IO のエンコーディングを設定します。

自身が BOM から始まる場合、BOM を読み進めて外部エンコーディングをセットし、セットしたエンコーディングを返します。 BOM が見つからなかった場合は nil を返します。

自身がバイナリモードでないかすでにエンコーディングがセットされている場合、例外が発生します。

File.write("bom.txt", "\u{FEFF}abc")
File.open("bom.txt", "rb") do |io|
  p io.set_encoding_by_bom    #=>  #<Encoding:UTF-8>
  str = io.read
  p str                       #=>  "abc"
  p str.encoding              #=>  #<Encoding:UTF-8>
end

File.write("nobom.txt", "abc")
File.open("nobom.txt", "rb") do |io|
  p io.set_encoding_by_bom    #=>  nil
end