🗂
[Misc #21025] String.new の引数がない場合のエンコーディングの話
[Misc #21025] What's the default encoding of String.new
?
-
String.new
で文字列を生成した場合に.new
の引数の文字列のエンコーディングが反映されます
str = "hoge".encode("SJIS")
# str のエンコーディングが反映される
pp String.new(str).encoding
# => #<Encoding:Windows-31J>
pp String.new(str.encode("UTF-8")).encoding
# => #<Encoding:UTF-8>
- この時に『
.new
の引数がない場合のエンコーディング』がドキュメントに明記されていないというチケットになります - これはエンコーディングが
BINARY
になるのが期待する挙動なのでドキュメントにその旨が追記されるように対応されました
pp String.new.encoding
# => #<Encoding:BINARY (ASCII-8BIT)>
Discussion