From: Tomoyuki Chikanaga Date: 2012-02-25T02:33:43+09:00 Subject: [ruby-dev:45281] [ruby-trunk - Bug #6069][Open] シングルクォート内のマルチバイト直前のバックスラッシュが消える Issue #6069 has been updated by Tomoyuki Chikanaga. Category set to core Status changed from Closed to Open Assignee set to Nobuyoshi Nakada r34776 での対応はダブルクオートも含めて文字列リテラル内の non-ascii 文字の前のバックスラッシュは残すようになっていると思うのですが、このチケットの意図としては ascii 文字の時と同じくダブルクオートの時は消す、シングルクオートの時は残す、という挙動をして欲しいということではないでしょうか? "\z" # => "z" '\z' # => "\\z" ということで reopen します。 ---------------------------------------- Bug #6069: シングルクォート内のマルチバイト直前のバックスラッシュが消える https://bugs.ruby-lang.org/issues/6069 Author: _ wanabe Status: Open Priority: Normal Assignee: Nobuyoshi Nakada Category: core Target version: ruby -v: ruby 2.0.0dev (2012-02-21 trunk 34711) [i686-linux] http://toro.2ch.net/test/read.cgi/tech/1324826777/710 で指摘があったのですが | シングルクォート文字列リテラルで | マルチバイト文字直前のバックスラッシュが一つだけだと | バックスラッシュが消え去ってました とのことです。具体的には以下の例のようになります。 # coding: UTF-8 p 'foo\ほげ' # => "fooほげ" git bisect で追ってみると、r33161 からのようでした。 http://d.hatena.ne.jp/nagachika/20110902/ruby_trunk_changes_33158_33164 たとえば ruby -e "p '\b'" などは "\\b" となりますので、 バックスラッシュは無視するのでなくそのまま残す方が嬉しいように思うのですがいかがでしょうか。 -- http://bugs.ruby-lang.org/