Bug #6675

Raise exception when convert encoding of a character from GBK to UTF

Added by Justin Peal almost 2 years ago. Updated over 1 year ago.

[ruby-core:45983]
Status:Rejected
Priority:Normal
Assignee:-
Category:-
Target version:-
ruby -v:ruby 1.9.3p194 (2012-04-20) [i386-mingw32] Backport:

Description

#!/usr/bin/env ruby -w

encoding: utf-8

require 'test/unit'

class Tests < Test::Unit::TestCase
def testgbk
assert
raise Encoding::UndefinedConversionError do
"\ue863".encode('gbk').encode('utf-8')
end
end
end

History

#1 Updated by Yui NARUSE almost 2 years ago

  • Status changed from Open to Feedback

The test passes my environment:
* ruby 1.9.3p194 (2012-04-20 revision 35410) [x8664-darwin11.4.0]
* ruby 1.9.3p203 (2012-05-04 revision 35536) [x86
64-freebsd9.0]
* ruby 1.9.3p243 (2012-06-28 revision 36244) [x8664-freebsd9.0]
* ruby 2.0.0dev (2012-07-02 trunk 36265) [x86
64-freebsd9.0]

Anyone can reproduce it?

#2 Updated by Yusuke Endoh over 1 year ago

  • Status changed from Feedback to Rejected

No feedback, closing.

2012/7/2 "Martin J. Dürst" duerst@it.aoyama.ac.jp:

\ue863 is in the Unicode private use area. Therefore, conversion to GBK
should not succeed. I get Encoding::UndefinedConversionError just for
ruby -e '"\ue863".encode("gbk")'

I don't understand why the title of the bug is "when convert ... from GBK to
UTF-8". The last method call of the test, .encode('utf-8'), is quite
irrelevant. Justin, can you explain what you want?

I guess Justen expected round-trip.

Yusuke Endoh mame@tsg.ne.jp

#3 Updated by Justin Peal over 1 year ago

Because GBK is narrow, now I use GB18030 to avoid this error. :-)

#!/usr/bin/env ruby -w

encoding: utf-8

require 'test/unit'

class Tests < Test::Unit::TestCase
def test_gbk
"\ue863".encode('gb18030').encode('utf-8')
end
end

Also available in: Atom PDF