Project

General

Profile

Bug #6675

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

Added by Justin Peal almost 4 years ago. Updated over 3 years ago.

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

Description

#!/usr/bin/env ruby -w

encoding: utf-8

require 'test/unit'

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

History

#1 [ruby-core:46093] Updated by Yui NARUSE almost 4 years ago

  • Status changed from Open to Feedback

The test passes my environment:
* ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-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) [x86_64-freebsd9.0]
* ruby 2.0.0dev (2012-07-02 trunk 36265) [x86_64-freebsd9.0]

Anyone can reproduce it?

#2 [ruby-core:48754] Updated by Yusuke Endoh over 3 years 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 [ruby-core:50619] Updated by Justin Peal over 3 years 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