[ruby-list:41778] YAMLのマルチバイト文字列の扱いについて

From: 西 啓一朗 <receiver@...>
Date: 2006-01-17 09:52:51 UTC
List: ruby-list #41778
どうも、西啓一朗と申します。
ちょっとした疑問がわいたので質問させてください。

自分が使用しているレンタルサーバで使用する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 } を渡せという記述を見つ
けたのですが……ソースのどこにもそれを受け取ってる場所がないような気がす
るんです……(^^ゞ

-- 
西 啓一朗 <ktouth@k-brand.gr.jp>


In This Thread

Prev Next