Есть ли функция, чтобы сделать что-то вроде этого:Разбор строки, содержащей номер Юникода, в соответствующий символ Юникода?
fn string_to_unicode_char(s: &str) -> Option<char> {
// ...
}
fn main() {
let s = r"\u{00AA}"; // note the raw string literal!
string_to_unicode_char(s).unwrap();
}
Обратите внимание, что r"\u{00AA}"
использует raw string я. е. это не последовательность Unicode но 8 отдельных символов, а \
u
{
0
0
A
A
}
.
Мне нужно интерпретировать/преобразовывать/анализировать эту строку и возвращать символ, если все хорошо, None
в противном случае. У меня нет опыта работы с Unicode, поэтому любые идеи приветствуются.
Будьте осторожны с понятием «символ юникода». Это непросто определить, и, конечно же, это не то же самое, что «char» (что является скалярным значением unicode). Например, «ɔ» - это один символ, но два 'char'. – mcarton
@mcarton вы правы, но я думаю, что мне не нужны такие экзотические символы, 'unicode scalar' достаточно –
Что касается обновления о необработанных строках, пожалуйста, опишите проблему, которую вы пытаетесь решить. – BurntSushi5