s = "\u{d800}"
产生错误test.rb:1: invalid Unicode codepoint
,如预期的那样。但是,
begin
s = "\u{d800}"
rescue Exception
puts "oh no"
end
做同样的事情,产生错误而不是输出oh no
。是否有内置的方法来挽救这种情况,还是我必须对有效范围的Unicode代码点进行硬编码以检查有效性?
答案 0 :(得分:1)
您可以使用chr
0xd800.chr('UTF-8')
# RangeError (invalid codepoint 0xd800 in UTF-8)