From: Yukihiro Matsumoto Date: 2007-10-09T17:47:06+09:00 Subject: [ruby-dev:31987] Re: multibyte string/regex literal with escape sequence まつもと ゆきひろです In message "Re: [ruby-dev:31986] Re: multibyte string/regex literal with escape sequence" on Tue, 9 Oct 2007 17:22:55 +0900, "U.Nakamura" writes: || unknown-8bitという名前で登録しようかなと思ってます。実態は || ASCIIのaliasなんですが。 | |これって、単にforce_encodingでそういう名前も指定できるように |なるだけ、なんでしょうか? 当面はそうです。 |それともインタプリタがそういうencodingを何らかの条件で自動的 |に設定することもあるのでしょうか? 「自動的」は危険な香りがしますね。 |某IRCではさっきのパッチ絡みからいろいろ話が出ていたのですが、 |単にaliasが用意されるだけだとあんまり嬉しくないので、 | | (1) あのパッチからもうちょっと拡張して、例えば8bitなエスケ | ープシーケンスが含まれるリテラルは「バイナリ」とする。 それを「バイナリ」と呼ぶぶんには構いませんが、それが「わか る」、「区別できる」ことにどんな嬉しさがありますか。 | (2) encodingがUS-ASCIIで、かつ内部的にENC_CODERANGE_UNKNOWN | な場合はString#encodingやRegexp#encodingは「バイナリ」 | を返す。 | # もしこの先IO#encodingができるようだとちょっと困るかも これもどういうケースで嬉しいんでしょうか。 | (3) バイナリリテラル表記(%b"..." とか "..."b とか)を用意し | てユーザが自発的に簡便に「バイナリ」な文字列を表記でき | るようにする。 これはありえると思ってました。が、もうちょっとユースケースが たまってから考えようと思ってました。どういうケースで「バイナ リ」文字列が嬉しいのかよくわからないんですよね。確かにpackと かで生成される文字列はバイナリですが、CRubyではいずれにしても 内部表現に変換が行われないので、バイナリを特別扱いしなければ ならない局面はそれほど多くないと予想しています。 まつもと ゆきひろ /:|)