YAMLと日本語

Rubyに標準添付のYAMLライブラリでは日本語をYAML化しようとするとBinary形式で出力されてしまいます。

# [yaml1.rb]
$KCODE='u'

require 'yaml'

puts "".to_yaml
$ ruby yaml1.rb 
--- !binary |
44GC

これを解決するにはYa2YAMLというライブラリを使えばいいようです。

まずはgemを使ってインストール。

$ sudo gem install ya2yaml

使い方はREADME参照。今回はこうしてみました。

#[yaml2.rb]
$KCODE='u'

require 'rubygems'
require 'yaml'
require 'ya2yaml'

puts "".ya2yaml(:syck_compatible => true)
$ ruby yaml2.rb 
--- あ

無事成功!