懒之圣帝 发表于 2013-5-10 20:31:42

Ruby193的p,printf等函数不支持多字节?

这里有段测试的脚本:
p "マルチバイトテキストテスト"
printf "多字节文字测试"
puts "ASCII Text てすと"
print "まるちばいとてきすとてすと"


在终端的表现:$ ruby rbfile1.rb
rbfile1.rb:1: invalid multibyte char (US-ASCII)
rbfile1.rb:1: invalid multibyte char (US-ASCII)
Ruby版本:ruby-1.9.3.392-29.fc18.i686

推测这p, printf, puts等等函数在内部用了char类型。
说好的unicode呢?而且用wchar_t也不会怎样吧?

由于RMVA的Ruby版本相当接近,于是就发这里了。

烁灵 发表于 2013-5-10 22:19:24

#encoding:utf-8

satgo1546 发表于 2013-5-11 09:40:03

$KCODE = "u"

Ruby200 发表于 2013-5-11 13:16:20

本帖最后由 Ruby200 于 2013-5-11 13:19 编辑

Ruby1.9.x里面的默认encoding是本地的默认代码页
到了Ruby2.0你可以放心假定默认就是UTF-8{:nm06:}

同时,Ruby字符串的内部存储也不一定统一是char或者wchar_t,用Matz的自己的话说就是字符串存的是什么就是什么
(如果是UTF8就是1-6字节表示一个字符那也同时就是这么储存的)
页: [1]
查看完整版本: Ruby193的p,printf等函数不支持多字节?