[#45637] [ruby-trunk - Feature #6440][Open] 引数にIOを渡した場合のMarshal.loadにバッファを持たせたい — "Glass_saga (Masaki Matsushita)" <glass.saga@...>

14 messages 2012/05/16

[#45670] [ruby-trunk - Bug #6479][Open] ipaddr.rbの受け付ける書式が、プラットフォームによって異なる — "kachick (Kenichi Kamiya)" <kachick1+ruby@...>

9 messages 2012/05/22

[ruby-dev:45652] [ruby-trunk - Bug #6450][Open] Shift JIS で String#tr の範囲指定がおかしい

From: "5.5 (5 5)" <redmine@...>
Date: 2012-05-18 15:44:40 UTC
List: ruby-dev #45652
Issue #6450 has been reported by 5.5 (5 5).

----------------------------------------
Bug #6450: Shift JIS で String#tr の範囲指定がおかしい
https://bugs.ruby-lang.org/issues/6450

Author: 5.5 (5 5)
Status: Open
Priority: Normal
Assignee: 
Category: M17N
Target version: 1.9.3
ruby -v: ruby 1.9.3p202 (2012-04-27 revision 35484) [x86_64-darwin10.8.0]


=begin
CP932(Windows-31J)は,第二バイトが 0x7F になる文字が存在しない仕組みになっていますが,以下の例のように,String#tr で範囲指定を使うと,そのような文字が存在するかのような動作になります。

 # encoding: cp932
 
 p "マミムメモ".tr("マ-モ", "マ-モ") # => "マミメモモ"
 p "マミムメモ".tr("マ-モ", "マ-モ") # => "マミ\x83\x7Fムメ"
 
 p "мнопр".tr("а-я", "А-Я") # => "МНПРС"
 p "МНОПР".tr("А-Я", "а-я") # => "мн\x84\x7Fоп"

この例では,文字コード表で,全角片仮名「ミ」と「ム」の間,およびキリル文字小文字の「н」と「о」の間に文字が存在するかのように置換してしまっています。

これが仕様だとすると,String#tr を使うのに文字の並び順の知識だけでなく,どのようなバイト列に符号化されるかといった知識まで必
要となり,非常に使いづらいと思います。
=end



-- 
http://bugs.ruby-lang.org/

In This Thread

Prev Next