行为不一致。
checkmark = "\u2713"
puts checkmark.encode('utf-8') # this works - prints the 'checkmark' character
2713.upto(2713) {|i|
puts '\u'.concat(i.to_s) # this prints \u2713 (instead of expected 'checkmark')
}
在两种情况下-打印复选框字符。
答案 0 :(得分:3)
在红宝石中,您可以使用chr
将字符代码转换为字符
55.chr # => "7"
但是对于ASCII范围以外的代码,这将失败
10003.chr # RangeError (10003 out of char range)
# 10003 is 0x2713 in decimal
在这种情况下,您需要指定编码。
10003.chr(Encoding::UTF_8) # => "✓"
或使用Array#pack
[10003].pack("U*") # => "✓"