[#42196] YAML でEUC は使えないのでしょうか。 — Tomokiyo Nomura <tnomura@...>
野村@延岡です。
8 messages
2006/05/05
[#42214] [ANN] RubyKaigi 2006 Announcement — SASADA Koichi <ko1@...>
日本Rubyの会、日本Rubyカンファレンス2006実行委員のささだです。
4 messages
2006/05/10
[#42235] ftp:// のリストを open-uri で得られないでしょうか — "Hideo Konami" <konami@...>
小波です。
5 messages
2006/05/20
[#42243] コミュニティと宗教の分離について — Beyond <beyond@...>
14 messages
2006/05/21
[#42245] Re: コミュニティと宗教の分離について
— Masayoshi Takahashi <takahashi@...>
2006/05/22
高橋征義です。「日本Rubyの会」という集まりの代表をしております。
[#42253] File objectがいつのまにか nilに、 — しん <dezawa@...>
出沢です
9 messages
2006/05/23
[#42267] メニューのループについて — リックス <rubyer4649@...>
りっくすです
21 messages
2006/05/27
[#42276] Re: メニューのループについて
— Hiroshi Yuki <hyuki@...>
2006/05/27
結城です。
[#42301] Re: メニューのループについて — "conundrum /" <conundrum@...>
conundrumです。
11 messages
2006/05/28
[#42306] Re: メニューのループについて
— rubikitch <rubikitch@...>
2006/05/29
From: "conundrum /" <[email protected]>
[ruby-list:42204] Re: YAML でEUC は使えないのでしょうか。
From:
"Hiroyuki Iwatsuki" <don@...>
Date:
2006-05-06 15:02:59 UTC
List:
ruby-list #42204
岩月と申します。
Ruby 1.8.4現在、YAMLライブラリは入力データの文字コードに
ついては一切考慮していないため、EUC-JPな文字列をそのまま
YAMLファイルに書けば、YAML.loadによって読み出される
文字列の文字コードはYAMLのままです。
例えば次のようにEUC-JPの文字列を含むYAMLファイルを
用意して、YAML.loadで読み込んでも文字コードに変化は
ありません。
% cat euc-jp.yaml
--- あいうえお
% ruby -v -Ke -ryaml -e "p YAML.load(File.read('euc-jp.yaml'))"
ruby 1.8.4 (2005-12-24) [i386-freebsd6]
"あいうえお"
逆にYAML記法による出力データにおいて、日本語をそのまま
出力することが Ruby 1.8.4 現在困難になっています。
もし野村さんが Ruby 1.8.3 以降をお使いでしたら、
それはYAMLライブラリの仕様だと思われます。
私の記憶が確かなら Ruby 1.8.2 の頃は日本語の文字列をそのままの形で
出力していたため、結果的にそのまま日本語で読めていました。
Ruby 1.8.3 あたりから日本語をバイナリデータとして扱われるようになり、
出力結果が日本語として読めなくなりました。
% ruby -v -Ke -ryaml -e "p YAML.load(File.read('euc-jp.yaml')).to_yaml"
ruby 1.8.4 (2005-12-24) [i386-freebsd6]
"--- !binary |\npKKkpKSmpKikqg==\n\n"
まとめますと、Ruby 1.8.4 現在、YAMLライブラリへの入力しては
文字コードは何を使ってもかまいません。逆にYAMLライブラリによる
出力では日本語を日本語として出力できません。
これが仕様か不具合かどうかはYAMLライブラリのメンテナに尋ねるしか
ないのではないかなあ、と思います。
--
IWATSUKI Hiroyuki <URL:mailto:[email protected]>