Hey folks,
Just brainstorming (and chatting w. JEG2) about some m17n issues and
came across a relatively simple feature that might be nice to have.
One challenge right now is easily working with binary strings when the
source encoding is not ASCII-8BIT.
For example:
# encoding: UTF-8
puts "Welcome to GIF Builder
bin_data = "".force_encoding("BINARY")
bin_data << "GIF".force_encoding("BINARY") # needed to prevent up-cast to UTF-8
Now, I've been able to work around issues like this in Prawn and other
code of mine by isolating binary code as much as possible and handling
encoding conversion in functions and the like, but it might make
things a little easier if we have a shortcut syntax for this. The
same example could be recast as something like:
# encoding: UTF-8
puts "Welcome to GIF Builder
bin_data = %b{}
bin_data << %b{GIF}
Or, if we didn't want new syntax, something like:
class String
def bin
force_encoding("BINARY")
end
end
However, new syntax would make the strings visually identifiable
immediately, helping the programmer spot potential problems.
What do you think?
-greg