[#41750] cygwinでRDtoolなどがインストールできない — Kouzuma Kunikazu <kuni92@...>
はじめまして、上妻 久仁和 と申します。
9 messages
2006/01/01
[#41751] Re: cygwinでRDtoolなどがインストールできない
— rubikitch <rubikitch@...>
2006/01/01
From: Kouzuma Kunikazu <kuni92@sings.jp>
[#41752] Re: cygwinでRDtoolなどがインストールできない
— nobu@...
2006/01/02
なかだです。
[#41753] [ANN] Subversion 1.3.0 released. — Kouhei Sutou <kou@...>
須藤です.
4 messages
2006/01/02
[#41790] Ruby組み込み時の拡張ライブラリの静的リンク — 湊大典 <minato.daisuke@...>
こんにちわ、湊大典@会津大です。
5 messages
2006/01/19
[#41795] Ruby/SDL Segmentation fault — Kouhei Yanagita <yanagi@...>
こんにちは。柳田です。
4 messages
2006/01/21
[ruby-list:41779] Re: YAMLのマルチバイト文字列の扱いについて
From:
"H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
Date:
2006-01-17 10:57:48 UTC
List:
ruby-list #41779
こんにちは、山本です。
>どうも、西啓一朗と申します。
>ちょっとした疑問がわいたので質問させてください。
>
>自分が使用しているレンタルサーバで使用する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出力が違うだけで、中身は一致しています。
ちょうどこの辺りを調べていたところでした。
ひとつは、YAML のバイナリ判定が甘いために、マルチバイト文字が
バイナリと判定されることがあるためです。(lib/yaml/rubytypes.rb)
require "yaml"
class String
def is_binary_data? # [ruby-list:16014]
return true if self.include?(0)
check = self[0, 512]
check.size < 10 * check.count("\x00-\x07\x0b\x0e-\x1a\x1c-\x1f")
end
end
y File.open('out.txt').read
こうすると、バイナリではなく文字列として出力されると思います。
ただ、それでも日本語じゃなく、エスケープシーケンスが出力されると思います。
これが挙動としてどうなのか、YAML の仕様的にどうなのかはまだわかっていません。
http://yaml.org/spec/current.html#id2513364 によると、YAML は UTF じゃないと
いけないらしいのですが、それにしては UTF-8 を渡してもエスケープされますし・・・
# YAML は 1.8.3 で大きな変更があり、これもそのひとつです。なお、メンテナは
# 外国の人で、why the lucky stiff と言います。