From: "duerst (Martin Dürst)" Date: 2013-08-31T15:59:43+09:00 Subject: [ruby-core:56924] [CommonRuby - Feature #8848][Open] Syntax for binary strings Issue #8848 has been reported by duerst (Martin D��rst). ---------------------------------------- Feature #8848: Syntax for binary strings https://bugs.ruby-lang.org/issues/8848 Author: duerst (Martin D��rst) Status: Open Priority: Normal Assignee: Category: Target version: In commit 37486, Yui (Naruse) added a String#b method as proposed in http://bugs.ruby-lang.org/issues/6767. String#b was added to allow easy generation of binary strings; this became necessary in particular after the source file encoding was changed to UTF-8. However, as also recognized in http://bugs.ruby-lang.org/issues/6767, in the long term (ideally starting with Ruby 2.1) it would be better to make binary strings available as part of Ruby syntax. One reason for this efficiency. String#b creates a duplicate object, which is not at all necessary for the frequent use case of String literals. Another reason is encoding validity. To be able to e.g. create a "\xFF" binary string, with String#b in an UTF-8 source context, it is necessary to allow "\xFF" (temporarily at least) as an (actually invalid) UTF-8 string. This may be difficult for some implementations, and isn't desirable in general. Regarding syntax, there are mainly two solutions: 1) a '%b' prefix 2) a 'b' suffix The preferable syntax depends on the overall future approach of Ruby to String literal suffixes (see https://bugs.ruby-lang.org/issues/8579). -- http://bugs.ruby-lang.org/