From: Yui NARUSE Date: 2011-08-09T17:32:28+09:00 Subject: [ruby-dev:44364] [Ruby 1.9 - Bug #5176][Assigned] UTF-8以外でpsychを使用し、YAML.dumpを実行するとエラーが発生する Issue #5176 has been updated by Yui NARUSE. Status changed from Open to Assigned Assignee set to Aaron Patterson > libyamlが「YAMLで使用する文字列はUTF-8である」ことを主張するのが原因かと思います。 これは以下の通り規格が UTF-8 と UTF-16 しかないと言っているので libyaml は正しいと思います。 > A YAML processor must support the UTF-16 and UTF-8 character encodings. > If a character stream does not begin with a byte order mark (#FEFF), the character encoding shall be UTF-8. http://yaml.org/spec/1.1/#id868742 > Stringをdumpする前にUTF-8に変換する作業をライブラリですべきではないでしょうか。 うーん、一度変換するともう戻らないのでどうなんでしょうかね。 Encoding.default_internal が指定されているときは変換したほうが良いとは思います。 ---------------------------------------- Bug #5176: UTF-8以外でpsychを使用し、YAML.dumpを実行するとエラーが発生する http://redmine.ruby-lang.org/issues/5176 Author: Masafumi Kiribayashi Status: Assigned Priority: Normal Assignee: Aaron Patterson Category: Target version: 1.9.2 ruby -v: ruby 1.9.2p290 (2011-07-09) [i686-linux] Windows環境(mingw)、Linux環境において、添付したファイルで現象が発生します。 libyamlが「YAMLで使用する文字列はUTF-8である」ことを主張するのが原因かと思います。 Stringをdumpする前にUTF-8に変換する作業をライブラリですべきではないでしょうか。 現状、私は添付したファイルのコメントアウトした箇所を有効にすることで、問題を回避しています。 -- http://redmine.ruby-lang.org