Как мне спасти "неверный код Unicode" в Ruby? - PullRequest
0 голосов
/ 25 июня 2018

s = "\u{d800}" выдает ошибку, test.rb:1: invalid Unicode codepoint, как и ожидалось. Тем не менее,

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

делает то же самое, производя ошибку, а не вывод oh no. Существует ли встроенный способ ее восстановления или мне нужно жестко кодировать допустимые диапазоны кодовых точек Unicode для проверки правильности?

1 Ответ

0 голосов
/ 25 июня 2018

Вы можете проверить, является ли число действительной кодовой точкой Юникода с помощью chr

0xd800.chr('UTF-8')
# RangeError (invalid codepoint 0xd800 in UTF-8)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...