Actions
Bug #10417
closedIO#set_encoding without int_enc doesn't keep current internal encoding
Description
bugかfeatureか迷ったんですが、とりあえずbugで。
IO#set_encoding
を1引数で呼び出したとき、つまりexternal encodingのみを指定した場合、internal encodingはnil
が指定されたとみなされ、Encoding.default_inernal
が設定されます。
従って、もともとこのIOにinternal encodingが設定されていた場合、それが上書きされてしまいます。
internal encodingを指定せずに呼び出した場合は、現在の値を保持すべきではないでしょうか?
Updated by usa (Usaku NAKAMURA) about 10 years ago
- Related to Bug #10418: REXML's encoding is broken if reading UTF-16 XML and Encondig.default_internal is set added
Updated by naruse (Yui NARUSE) about 10 years ago
- 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()って位置から設定し直すメソッドな雰囲気を感じている、とか。
Updated by naruse (Yui NARUSE) about 4 years ago
- Status changed from Open to Closed
特に困っているって言う例を聞かないので一旦クローズします
Actions
Like0
Like0Like0Like0