[ruby-dev:31825] Re: 文字列の式展開

From: eklerni <eklerni@...>
Date: 2007-09-23 08:14:27 UTC
List: ruby-dev #31825
返信ありがとうございます。
> なかだです。
>   
> 1. nil.to_sはencodingに関係なく、US-ASCIIの""を返す
> 2. 文字列リテラルは、内容に関係なく-Kで指定されたencodingに従う
> 3. 結合の際にASCII-compatibleかどうかは考慮されない
>
> 詳細は[ruby-dev:31715]からのスレッドをみてください。
>   
内部コードをどうするかという仕様に関係するのですね。
> 上の例に関しては、nil.to_sを直すだけでも通るようになると思います
> が、たとえばutf-8のライブラリを使うときには必ず-Kuを付けなければ
> ならないというのも、不便だと思います。
>
> 結局、自動変換をサポートするかという話になるのかもしれませんが、
> 外部からもらったStringは常にencodeしてから使え、というのもかなり
> 面倒です。
>   
よく理解していないかもしれませんが、
[ruby-dev:31715]のなかださんの提案は、

ruby -Ks -e '"at" + nil.to_s'
US-ASCII + US-ASCII でOK

ruby -Ks -e '"あっと" + nil.to_s'
Shift_JIS + US-ASCIIでNG

って感じでしょうか。それともなんらかの変換をして後者も通るようになってる
んでしょうか。

eklerni




In This Thread