On 16/09/2008, Martin Duerst <duerst / it.aoyama.ac.jp> wrote:
> 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.
>

Can't UTF-16 be just in the host byte order? My guess is that this is
what people would expect. And it could issue a warning that such
encoding is non-portable.

Thanks

Michal