FenRagwort 发表于 2011-02-21 20:55

请问输出的编码问题

脚本编码设为UTF-8了# coding: utf-8
str = "张三李四"
new_str = str.split(/(..)/).reverse.join("")
file = File.open('x:\foo.rb.txt', 'w:UTF-8')
file.puts new_str
puts new_str输出的文件foo.rb.txt是UTF-8编码,显示正常
不过最后一行puts new_str是乱码,因为命令行是GBK编码

请问怎么样在脚本用utf-8的情况下,让输出到STDOUT和从STDIN输入的是gbk编码?

FenRagwort 发表于 2011-02-21 22:01

自己摸索出来了STDOUT.set_encoding("gbk")

Sapien 发表于 2011-02-22 00:28

又见编码问题 =-=
转化为 GBK 后再输出 (only for Ruby 1.9):
puts new_str.encode("GBK")

2gua 发表于 2011-02-22 08:19

Ruby的方式,和Perl一样,甚至有更多的解决方法。

FenRagwort 发表于 2011-02-25 21:37

# encoding: utf-8
[ STDIN, STDOUT, STDERR ].each do |stdio|
stdio.set_encoding( Encoding.locale_charmap, 'utf-8' )
end
页: [1]
查看完整版本: 请问输出的编码问题