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版本相当接近,于是就发这里了。 #encoding:utf-8 $KCODE = "u" 本帖最后由 Ruby200 于 2013-5-11 13:19 编辑
Ruby1.9.x里面的默认encoding是本地的默认代码页
到了Ruby2.0你可以放心假定默认就是UTF-8{:nm06:}
同时,Ruby字符串的内部存储也不一定统一是char或者wchar_t,用Matz的自己的话说就是字符串存的是什么就是什么
(如果是UTF8就是1-6字节表示一个字符那也同时就是这么储存的)
页:
[1]