如何在Ruby中挽救“无效的Unicode代码点”?

时间:2018-06-25 16:49:12

标签: ruby error-handling

s = "\u{d800}"产生错误test.rb:1: invalid Unicode codepoint,如预期的那样。但是,

begin
  s = "\u{d800}"
rescue Exception
  puts "oh no"
end

做同样的事情,产生错误而不是输出oh no。是否有内置的方法来挽救这种情况,还是我必须对有效范围的Unicode代码点进行硬编码以检查有效性?

1 个答案:

答案 0 :(得分:1)

您可以使用chr

测试数字是否为有效的Unicode代码点
0xd800.chr('UTF-8')
# RangeError (invalid codepoint 0xd800 in UTF-8)