«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как преобразовать суррогатные пары в обычные строки в Python?

Как преобразовать суррогатные пары в обычные строки в Python?

Опубликовано 21 декабря 2024 г.
Просматривать:877

How to Convert Surrogate Pairs to Normal Strings in Python?

Преобразование суррогатных пар в обычную строку в Python

В этом вопросе ищется метод преобразования строки Unicode Python, содержащей суррогатные пары, в стандартную строку представительство. Цель состоит в том, чтобы получить понятный символ Юникода или стандартизированный шестнадцатеричный формат.

Приведенный фрагмент кода представляет строку Python, которая включает суррогатную пару, представляющую смайлик:

emoji = "This is \ud83d\ude4f, an emoji."

Чтобы решить проблему, важно различать буквальные строки суррогатной пары в файле JSON на диске (шесть символов) и строки суррогатной пары из одного символа в памяти (один символ).

Если строка представляет собой суррогатную пару из одного символа, найденную в исходном коде Python (например, как в приведенном примере), это указывает на потенциальную ошибку в исходном коде. Если это произошло и не может быть устранено, можно использовать обработчик ошибок surrogatepass:

"\ud83d\ude4f".encode('utf-16', 'surrogatepass').decode('utf-16')

Это выведет соответствующий символ Юникода, представленный в виде вопросительного знака. (?):

'?'

В случае буквальных строк суррогатной пары в файле JSON на диске суррогатная пара не должна присутствовать после загрузки данных JSON:

ascii(json.loads(r'"\ud83d\ude4f"'))

Это выведет стандартизированный шестнадцатеричный формат символов Юникода:

'\U0001f64f'

Понимание этого различия важно для обработки суррогатных пар в Python и преобразования их в удобный формат.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3