Skip to content

Commit

Permalink
Merge pull request #2275 from pocke/IO#set_encoding_by_bom
Browse files Browse the repository at this point in the history
Add IO#set_encoding_by_bom since 2.7.0
  • Loading branch information
znz authored May 26, 2020
2 parents cf0236d + 4c5583d commit baf3fc9
Showing 1 changed file with 26 additions and 0 deletions.
26 changes: 26 additions & 0 deletions refm/api/src/_builtin/IO
Original file line number Diff line number Diff line change
Expand Up @@ -2247,6 +2247,32 @@ opt のハッシュで外部エンコーディングを内部エンコーディ
io = File.open(file)
io.set_encoding("ASCII-8BIT", "EUC-JP")

#@since 2.7.0
--- set_encoding_by_bom -> Encoding | nil

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

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

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

#@samplecode 例
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
#@end
#@end

--- autoclose=(bool)

auto-close フラグを設定します。
Expand Down

0 comments on commit baf3fc9

Please sign in to comment.