Bug #10417
closed
IO#set_encoding without int_enc doesn't keep current internal encoding
Added by usa (Usaku NAKAMURA) about 10 years ago.
Updated almost 4 years ago.
Description
bugかfeatureか迷ったんですが、とりあえずbugで。
IO#set_encoding
を1引数で呼び出したとき、つまりexternal encodingのみを指定した場合、internal encodingはnil
が指定されたとみなされ、Encoding.default_inernal
が設定されます。
従って、もともとこのIOにinternal encodingが設定されていた場合、それが上書きされてしまいます。
internal encodingを指定せずに呼び出した場合は、現在の値を保持すべきではないでしょうか?
- Related to Bug #10418: REXML's encoding is broken if reading UTF-16 XML and Encondig.default_internal is set added
- Target version changed from 2.2.0 to 3.0
fptr.encs.enc と fptr.encs.enc2 って不可分なものな気がするのと、
set_encoding というそれまでの前提が覆ってる状況で前の状態を尊重する理由をあんまり感じないので、
現在の値を保持するべきだとはあまり思いません。
そもそも set_encoding(ext_enc, int_enc, opts) の引数たちと内部の状態に若干解離があるとか、
optsは吹っ飛ばさざるを得ないので、int_encも飛ばしていいんじゃないとか、
そもそもset_encoding()って位置から設定し直すメソッドな雰囲気を感じている、とか。
- Status changed from Open to Closed
特に困っているって言う例を聞かないので一旦クローズします
Also available in: Atom
PDF
Like0
Like0Like0Like0