At 00:43 08/09/15, James Gray wrote:

>> I tried to test with UTF-16 as well, since I think that's a good  
>> edge case.  However, we don't seem to have a converter for that:
>>
>>  $ ruby_dev ~/Desktop/regexp_encoding.rb #<Encoding:US-ASCII>
>>  #<Encoding:US-ASCII>
>>  /Users/james/Desktop/regexp_encoding.rb:15:in `encode': code  
>> converter not found (US-ASCII to UTF-16) (Encoding::NoConverter)
>>      from /Users/james/Desktop/regexp_encoding.rb:15:in `<main>'
>
>This was my fault.  UTF-16 is not a valid encoding name.  Once I  
>switched to UTF-16LE or UTF-16BE it worked fine.

Just thinking aloud: Although I'm the person who wrote most of the
original core for String#encode, and should therefore know best,
I've fallen in that trap several times. Given that, and the fact
that in the wild, UTF-16 is used quite frequently, suggests that
other people will make this error, too, and will have difficulties
to figure out what's wrong.

So I'm suggesting that we produce some special error message for
UTF-16, such as "UTF-16 not available, use either UTF-16BE or
UTF-16LE". In general, I don't like such special-casing, but
given that Ruby tries to be user-friendly, it may be worth
doing.

Any comments?

Regards,    Martin.


#-#-#  Martin J. Du"rst, Assoc. Professor, Aoyama Gakuin University
#-#-#  http://www.sw.it.aoyama.ac.jp       mailto:duerst / it.aoyama.ac.jp