3

s = "你好"
s.encoding           # => #<Encoding:UTF-8>
yaml = s.to_yaml     # => "--- \"\\xE4\\xBD\\xA0\\xE5\\xA5\\xBD\"\n"
yaml.encoding        # => #<Encoding:ASCII-8BIT>
yaml.force_encoding 'utf-8' # => "--- \"\\xE4\\xBD\\xA0\\xE5\\xA5\\xBD\"\n"

Then, how to make the 'to_yaml' generate original looking: "你好", I mean not something like '\XE4'
Or, is there anyway to change the 'to_yaml' result to make it?
Thank you!

Croplio
  • 3,433
  • 6
  • 31
  • 37

1 Answers1

3

Use ya2yaml:

require 'ya2yaml'
$KCODE = "UTF8"
"你好".ya2yaml #=> "--- 你好\n"
tokland
  • 66,169
  • 13
  • 144
  • 170