From: "西 啓一朗" Date: 2006-01-17T18:52:51+09:00 Subject: [ruby-list:41778] YAMLのマルチバイト文字列の扱いについて どうも、西啓一朗と申します。 ちょっとした疑問がわいたので質問させてください。 自分が使用しているレンタルサーバで使用するCGIを組んでいます。 そのCGIでデータを保存するためにYAMLを利用しているのですが、保存したテキ ストファイルにちょっとした差違があったのです。 レンタルサーバでの動作(FreeBSD4/csh) > %cat out.txt > さんぷる > %ruby -Ke -v -ryaml -e "y File.open('out.txt').read" > ruby 1.8.2 (2004-12-25) [i386-freebsd4] > --- "さんぷる" > % 自宅(WinXP/Cygwin版ruby/bash) > xxx:~$ cat out.txt > さんぷる > xxx:~$ ruby -Ke -v -ryaml -e "y File.open('out.txt').read" > ruby 1.8.4 (2005-12-24) [i386-cygwin] > --- !binary | > pLWk86TXpOs= > > xxx:~$ テキストファイルのエンコードはどちらもeuc-jpで同じものです。 どうやらcygwin環境の方は文字列のエンコードを認識してないようなんですが、 この差はどこで出ているのでしょうか? 補足:YAML出力が違うだけで、中身は一致しています。 人の目でも読める、と言う方がうれしいのでレンタルサーバのような形にCygwin 環境の方も変えたいのですが……どこをいじればいいのかわかりませんでした。 UNIX周りについてはほぼ知識無しです。 ついで: エンコード指定の方法が無いかと思い、YAML/syckのドキュメントやソースを追 跡してみたんですが見つかりませんでした。 一応オプションパラメータに { :Encoding => :Utf8 } を渡せという記述を見つ けたのですが……ソースのどこにもそれを受け取ってる場所がないような気がす るんです……(^^ゞ -- 西 啓一朗