1123
- десятичный эквивалент шестнадцатеричного 0463
, а Unicode использует шестнадцатеричный. Таким образом, чтобы получить преобразование, вам нужно вычеркнуть не-ди git символы, преобразовать цифры в шестнадцатеричные символы, вставить «\ u» перед ними, затем использовать stri_unescape_unicode
.
Эта функция будет делать все это:
ncr2uni <- function(x)
{
# Strip out non-digits and and convert remaining numbers to hex
x <- as.hexmode(as.numeric(gsub("\\D", "", x)))
# Left pad with zeros to length 4 so escape sequence is recognised as Unicode
x <- stringi::stri_pad_left(x, 4, "0")
# convert to Unicode
stringi::stri_unescape_unicode(paste0("\\u", x))
}
Теперь вы можете сделать
ncr2uni(c("ѣ", "Ѥ", "ѥ"))
# [1] "ѣ" "Ѥ" "ѥ"