[#47766] Hashイテレーション中の新規キー追加 — masa <masap.hat@...>
畠山です。
10 messages
2011/01/20
[#47768] Re: Hashイテレーション中の新規キー追加
— Satoshi GUNJI <gunjisatoshi@...>
2011/01/21
郡司と申します。
[#47769] Re: Hashイテレーション中の新規キー追加
— masa <masap.hat@...>
2011/01/21
GyRCSCs7MyRHJDkhIxsoQgoKGyRCJF4kRCRiJEgkNSRzISI3NDtKJDUkcyEiJCpKVjt2JCIkaiQs
[#47780] Ruby1.9.2 と RDEについて — eiichi_maekawa@...
9 messages
2011/01/26
[#47781] Re: Ruby1.9.2 と RDEについて
— Koutarou Tanaka <from.kyushu.island@...>
2011/01/26
=1B$BEDCf$H?=3D$7$^$9!#=1B(B
[#47789] [ANN] ytl 0.0.2 リリース — "Miura Hideki" <m-72@...6.so-net.ne.jp>
三浦と申します
1 message
2011/01/28
[#47790] [].join.encoding # => #<Encoding:ASCII-8BIT> — "5.5" <5.5@...>
5.5 です。
11 messages
2011/01/29
[#47792] Re: [].join.encoding # => #<Encoding:ASCII-8BIT>
— "NARUSE, Yui" <naruse@...>
2011/01/29
成瀬です。
[#47798] Re: [].join.encoding # => #<Encoding:ASCII-8BIT>
— "5.5" <5.5@...>
2011/01/31
5.5 です。
[#47799] Re: [].join.encoding # => #<Encoding:ASCII-8BIT>
— "Shota Fukumori (sora_h)" <sorah@...>
2011/01/31
sora_hです。
[#47800] Re: [].join.encoding # => #<Encoding:ASCII-8BIT>
— "KISHIMOTO, Makoto" <ksmakoto@...4u.or.jp>
2011/01/31
きしもとです
[#47801] Re: [].join.encoding # => #<Encoding:ASCII-8BIT>
— "NARUSE, Yui" <naruse@...>
2011/01/31
成瀬です。
[#47794] [ANN] Ruby-GNOME2 0.90.6 — Kouhei Sutou <kou@...>
須藤です。
7 messages
2011/01/30
[ruby-list:47792] Re: [].join.encoding # => #<Encoding:ASCII-8BIT>
From:
"NARUSE, Yui" <naruse@...>
Date:
2011-01-29 15:51:47 UTC
List:
ruby-list #47792
成瀬です。
2011年1月29日12:40 5.5 <5.5@moji.gr.jp>:
> Ruby 1.9.2 で,[].join の文字コードが Encoding::ASCII-8BIT になる
> ようです。
>
> [].join.encoding # => #<Encoding:ASCII-8BIT>
>
> Array#join は,典型的には文字の列を返してほしいので US-ASCII のほ
> うが良さそうに思うのですが,なぜ ASCII-8BIT なのでしょうか。
これは Ruby 側のバグですね、r30721 で修正しました。
報告ありがとうございました。
> これに気づいたのは,空配列を join したものを sqlite3 でデータベー
> スに書き込んだときに,文字列ではない変なものが書き込まれてしまっ
> たからです。
>
> str1="".encode("US-ASCII")
> str2="".encode("ASCII-8BIT")
ここはString#encode ではなく、String#force_encoding を使うべきです。
> require 'sqlite3'
> DB=SQLite3::Database.new "hogehoge.sqlite"
> DB.execute "CREATE TABLE words (word VARCHAR(255))"
> DB.execute "INSERT INTO words (word) VALUES (?)", str1
> DB.execute "INSERT INTO words (word) VALUES (?)", str2
>
> 上記のコードで,二つめのレコードには,謎のバイト列(?)が入り
> ます。Firefox の SQLite Manager で見ると,「X''」のように見えます。
>
> これは,SQLite3::Datababase に ASCII-8BIT な文字列を渡すのが悪い
> のか,sqlite3 の動作が不適当なのか,どちらでしょうか。
で、こっちは sqlite3-ruby のバグに見えるんですが、手元で再現しない気がする。
普通に SELECT で返すんだとダメなのかな
--
NARUSE, Yui
naruse@airemix.jp