[ruby-dev:31723] Re: string literal encoding

From: Yukihiro Matsumoto <matz@...>
Date: 2007-09-03 07:34:12 UTC
List: ruby-dev #31723
まつもと ゆきひろです

In message "Re: [ruby-dev:31717] Re: string literal encoding"
    on Mon, 3 Sep 2007 09:55:23 +0900, Nobuyoshi Nakada <nobu@ruby-lang.org> writes:

|JRubyでは、Unicode系以外の文字列はどういう方針になるんでしょうか。
|なんとなく、binaryについてはbyte arrayという話を見掛けたような気
|もするんですが。

JRubyでは基本的に内部コードに変換するポリシーになると思いま
す。で、バイナリが必要な場合には明示的にバイナリと指定するの
だと思います。内部的に実装を切り替える(通常文字列はJavaの
Stringを使用、バイナリ文字列はbyte array。表面的には同じクラ
スに見える)と聞いています。

|もしすべてUTF-16で実装するなら、String#encodingは常に"UTF-16"を
|返すんでしょうか。

そうだと思います。

|それならそれでcoding:で指定したものとは一致す
|るとは限らないわけで、気にすることはないようにも思えます。

codingで指定したものと一致しないのはそれはそれで構わないので
すが、「ASCIIしか含まないものはASCII(≒バイナリ)という仕様」
はJRuby的に取り込みにくいんじゃないでしょうか。UTF-8と違って、
通常文字列(UTF-16)とバイナリ文字列(ASCII)の互換性を維持する
のが困難だと思いますから。

                                まつもと ゆきひろ /:|)

In This Thread