Project

General

Profile

Actions

Bug #5920

closed

Encoding.compatible? gives inconsistent results with String vs Encoding arguments

Added by brixen (Brian Shirai) about 12 years ago. Updated about 12 years ago.

Status:
Rejected
Assignee:
-
Target version:
-
ruby -v:
ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-darwin10.8.0]
Backport:
[ruby-core:42202]

Description

Is this a bug? If I pass two strings that have the same encodings as the Encoding instances I pass directly, I get different results.

$ irb
ruby-1.9.3-p0 :001 > Encoding.compatible?(Encoding::EUC_JP, Encoding::UTF_8)
=> nil
ruby-1.9.3-p0 :002 > a = "abc".encode "euc-jp"
=> "abc"
ruby-1.9.3-p0 :003 > a.encoding
=> #Encoding:EUC-JP
ruby-1.9.3-p0 :004 > a.valid_encoding?
=> true
ruby-1.9.3-p0 :005 > b = "def".encode "utf-8"
=> "def"
ruby-1.9.3-p0 :006 > b.encoding
=> #Encoding:UTF-8
ruby-1.9.3-p0 :007 > b.valid_encoding?
=> true
ruby-1.9.3-p0 :008 > Encoding.compatible?(a, b)
=> #Encoding:EUC-JP
ruby-1.9.3-p0 :009 > a << b
=> "abcdef"
ruby-1.9.3-p0 :010 > a.encoding
=> #Encoding:EUC-JP
ruby-1.9.3-p0 :011 > a.valid_encoding?
=> true

If this is not a bug, could someone please explain the rationale behind the behavior.

Thanks,
Brian

Actions

Also available in: Atom PDF

Like0
Like0Like0