Project

General

Profile

Actions

Bug #6675

closed

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

Added by mghomn (Justin Peal) almost 12 years ago. Updated over 11 years ago.

Status:
Rejected
Assignee:
-
Target version:
-
ruby -v:
ruby 1.9.3p194 (2012-04-20) [i386-mingw32]
Backport:
[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

Updated by naruse (Yui NARUSE) almost 12 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?

Updated by mame (Yusuke Endoh) over 11 years ago

  • Status changed from Feedback to Rejected

No feedback, closing.

2012/7/2 "Martin J. Dürst" :

\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

Updated by mghomn (Justin Peal) over 11 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

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0