2011年2月 9日

[ruby-list:47852] Re: ruby1.9での文字列について

ありがとうございます。
うまくゆきました。
それで、プログラムを実行するとき、ruby1.9のときは、force_encodingをして、ruby1.8のときはそれをしないように
したいと思いましたが、実行中のrubyにそれを判断する方法をしりたいのですが、なにか特別な変数などあるのかと
思いましたが見つけられませんでした。
何度もすみませんが、実行中のrubyのバージョンをプログラム中に知る方法はご存知ないでしょうか?


2011年2月8日19:36 KOSAKI Motohiro <kosaki.motohiro@xxxxx>:
> 2011年2月8日18:35 Nobuyuki Inaba <nobuyuki.inaba@xxxxx>:
>> 稲葉と申します。
>> 今まで、ruby1.8を使っていまして、1.9に移行しようと考えています。
>> それでひとつ困ったことがありまして、
>> 1.8では、OKだったのですが、1.9では、
>> UTF-8 の文字列と、ISO-2022-JPの混在が
>> Encoding::CompatibilityError: incompatible character encodings: UTF-8
>> and ISO-2022-JP
>> と表示されます。
>> それはわかるのですが、わざと混在させたいのですが、どうにかエラーが出ない様にできないでしょうか?
>> できれば助かるのですが。
>> encodingを無効にするのかなとか思いましたがどうもわかりませんでした。
>
> エンコーディングを無効にしたいならこうかな?
> 無理矢理エンコーディングを忘れさせているので、もう文字としては扱えなくなりますが。
>
> str1="あ".encode("UTF-8").force_encoding("ASCII-8BIT")
> str2="あ".encode("ISO-2022-JP").force_encoding("ASCII-8BIT")
> p str1, str2, str1+str2
>
> =>
>
> "\xE3\x81\x82"
> "\e$B$\"\e(B"
> "\xE3\x81\x82\e$B$\"\e(B"
>
>


投稿者 xml-rpc : 2011年2月 9日 09:42
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/101873
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。