Project

General

Profile

Actions

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 about 4 years ago.

Status:
Closed
Assignee:
-
Target version:
[ruby-dev:48685]

Description

bugかfeatureか迷ったんですが、とりあえずbugで。

IO#set_encodingを1引数で呼び出したとき、つまりexternal encodingのみを指定した場合、internal encodingはnilが指定されたとみなされ、Encoding.default_inernalが設定されます。
従って、もともとこのIOにinternal encodingが設定されていた場合、それが上書きされてしまいます。
internal encodingを指定せずに呼び出した場合は、現在の値を保持すべきではないでしょうか?


Related issues 1 (0 open1 closed)

Related to Ruby master - Bug #10418: REXML's encoding is broken if reading UTF-16 XML and Encondig.default_internal is setClosedkou (Kouhei Sutou)10/22/2014Actions

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

Also available in: Atom PDF

Like0
Like0Like0Like0