-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* transcode.c: new file to provide encoding conversion features.
code contributed by Martin Duerst. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14172 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
- Loading branch information
matz
committed
Dec 10, 2007
1 parent
38a24d7
commit 7ded13f
Showing
8 changed files
with
3,797 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,8 @@ | ||
Mon Dec 10 14:00:43 2007 Yukihiro Matsumoto <[email protected]> | ||
|
||
* transcode.c: new file to provide encoding conversion features. | ||
code contributed by Martin Duerst. | ||
|
||
Mon Dec 10 13:50:33 2007 Nobuyoshi Nakada <[email protected]> | ||
|
||
* re.c (rb_reg_search): return byte offset. [ruby-dev:32452] | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
# -*- encoding: US-ASCII -*- # make sure this runs in binary mode | ||
|
||
class String | ||
# different name, because we should be able to remove this later | ||
def fix_encoding (encoding) | ||
force_encoding(encoding) | ||
end | ||
end | ||
|
||
require 'test/unit' | ||
class TestConvert < Test::Unit::TestCase | ||
def test_can_call | ||
# we don't have semantics for conversion without attribute yet | ||
# maybe 'convert to UTF-8' would be nice :-) | ||
assert_raise(ArgumentError) { 'abc'.encode } | ||
assert_raise(ArgumentError) { 'abc'.encode! } | ||
assert_raise(ArgumentError) { 'abc'.force_encoding('Shift_JIS').encode('UTF-8') } # temporary | ||
assert_raise(ArgumentError) { 'abc'.force_encoding('Shift_JIS').encode!('UTF-8') } # temporary | ||
assert_raise(ArgumentError) { 'abc'.encode('foo', 'bar') } | ||
assert_raise(ArgumentError) { 'abc'.encode!('foo', 'bar') } | ||
assert_raise(ArgumentError) { 'abc'.force_encoding('utf-8').encode('foo') } | ||
assert_raise(ArgumentError) { 'abc'.force_encoding('utf-8').encode!('foo') } | ||
assert_equal('abc'.force_encoding('utf-8').encode('iso-8859-1'), 'abc') # temporary, fix encoding | ||
assert_equal("D\xFCrst".force_encoding('iso-8859-1').encode('utf-8').fix_encoding('utf-8'), "D\u00FCrst") | ||
assert_equal("D\xFCrst".encode('utf-8', 'iso-8859-1').fix_encoding('utf-8'), "D\u00FCrst") | ||
assert_equal("D\xFCrst".encode('utf-8', 'iso-8859-2').fix_encoding('utf-8'), "D\u00FCrst") | ||
assert_equal("D\xFCrst".encode('utf-8', 'iso-8859-3').fix_encoding('utf-8'), "D\u00FCrst") | ||
assert_equal("D\xFCrst".encode('utf-8', 'iso-8859-4').fix_encoding('utf-8'), "D\u00FCrst") | ||
assert_equal("D\xFCrst".encode('utf-8', 'iso-8859-9').fix_encoding('utf-8'), "D\u00FCrst") | ||
assert_equal("D\xFCrst".encode('utf-8', 'iso-8859-10').fix_encoding('utf-8'), "D\u00FCrst") | ||
assert_equal("D\xFCrst".encode('utf-8', 'iso-8859-13').fix_encoding('utf-8'), "D\u00FCrst") | ||
assert_equal("D\xFCrst".encode('utf-8', 'iso-8859-14').fix_encoding('utf-8'), "D\u00FCrst") | ||
assert_equal("D\xFCrst".encode('utf-8', 'iso-8859-15').fix_encoding('utf-8'), "D\u00FCrst") | ||
assert_equal("D\u00FCrst".encode('iso-8859-1'), "D\xFCrst") | ||
assert_equal("D\u00FCrst".encode('iso-8859-2'), "D\xFCrst") | ||
assert_equal("D\u00FCrst".encode('iso-8859-3'), "D\xFCrst") | ||
assert_equal("D\u00FCrst".encode('iso-8859-4'), "D\xFCrst") | ||
assert_equal("D\u00FCrst".encode('iso-8859-9'), "D\xFCrst") | ||
assert_equal("D\u00FCrst".encode('iso-8859-10'), "D\xFCrst") | ||
assert_equal("D\u00FCrst".encode('iso-8859-13'), "D\xFCrst") | ||
assert_equal("D\u00FCrst".encode('iso-8859-14'), "D\xFCrst") | ||
assert_equal("D\u00FCrst".encode('iso-8859-15'), "D\xFCrst") | ||
end | ||
end |
Oops, something went wrong.