[#46301] 自前コンパイルしたruby1.9の$LOAD_PATHに"."が入っていない — KURODA Hiraku <hiraku@...>

こんにちは、黒田ひらくと言います。

12 messages 2009/08/20

[#46321] ファイル名について — "前川 映一" <eiichi_maekawa@...>

17 messages 2009/08/21
[#46322] Re: ファイル名について — "NARUSE, Yui" <naruse@...> 2009/08/21

成瀬です。

[#46324] Re: [ruby-list:46322 , 46323 ] Re: ファイル名について — "前川 映一" <eiichi_maekawa@...> 2009/08/21

[ruby-list:46274] % でのフォーマット

From: Yutaka Kanemoto <kinpoco@...>
Date: 2009-08-11 15:25:59 UTC
List: ruby-list #46274
金本と申します。
お世話になります。

以下のようなスクリプトを走らせると、
1.9.1p0とtrunkで結果に差があります。

>---ここから---<
# coding: utf-8
fmt="%s テスト%s"
p fmt.encoding
a=["abc", "です。"]

a.each {|e|
  print e, ": ", e.encoding, "\n"
}
puts fmt % a
puts "----"
a[0].encode!("US-ASCII")
a.each {|e|
  print e, ": ", e.encoding, "\n"
}

p Encoding.compatible?(a[0], fmt)
p Encoding.compatible?(a[1], fmt)
p Encoding.compatible?(a[0], a[1])
puts fmt % a
>---ここまで---<

>---ここから1.9.1p0---<
ruby 1.9.1p0 (2009-01-30 revision 21907) [x86_64-linux]
#<Encoding:UTF-8>
abc: UTF-8
です。: UTF-8
abc テストです。
----
abc: US-ASCII
です。: UTF-8
#<Encoding:UTF-8>
#<Encoding:UTF-8>
#<Encoding:UTF-8>
abc テストです。
>---ここまで1.9.1p0---<

>---ここからtrunk---<
ruby 1.9.2dev (2009-08-11 trunk 24495) [x86_64-linux]
#<Encoding:UTF-8>
abc: UTF-8
です。: UTF-8
abc テストです。
----
abc: US-ASCII
です。: UTF-8
#<Encoding:UTF-8>
#<Encoding:UTF-8>
#<Encoding:UTF-8>
19:in `%': incompatible character encodings: US-ASCII and UTF-8
(Encoding::CompatibilityError)
        from enctest.rb:19:in `<main>'
>---ここまでtrunk---<
いまいち見づらくてどうもすみません。

1.9.1p243も結果はtrunkといっしょでした。
仕様変更やBugFixがあったかなにかで、こういう場合は%する前に、
encodingをそろえたほうがいいのでしょうか?
何か私がEncodingについて理解していなくて勘違いしているのかもしれませんが、
compatible?はEncodingが返ってきているので、compatibleなきがするのですが、
CompatibilityErrorになってしまうのがよくわかりませんでした。

Redmineにあげたほうがよろしいでしょうか?
よろしくお願いいたします。
-- 
Yutaka KANEMOTO
http://d.hatena.ne.jp/kinpoco/

In This Thread

Prev Next