"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como converter pares substitutos em strings normais em Python?

Como converter pares substitutos em strings normais em Python?

Publicado em 2024-12-21
Navegar:282

How to Convert Surrogate Pairs to Normal Strings in Python?

Convertendo pares substitutos em string normal em Python

Esta questão busca um método para transformar uma string Python Unicode contendo pares substitutos em uma string padrão representação. O objetivo é obter um caractere Unicode inteligível ou um formato hexadecimal padronizado.

O snippet de código fornecido apresenta uma string Python que inclui um par substituto representando um emoji:

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

Para resolver o problema, é crucial distinguir entre pares de strings substitutas literais em um arquivo JSON no disco (seis caracteres) e strings de par substituto de caractere único na memória (um caractere).

Se a string for um par substituto de caractere único encontrado no código-fonte Python (como o exemplo fornecido), ela indica um possível bug no upstream. Se isso for encontrado e não puder ser resolvido, o manipulador de erros surrogatepass pode ser empregado:

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

Isso gerará o caractere Unicode correspondente, representado como um ponto de interrogação (?):

'?'

No caso de strings de pares substitutos literais em um arquivo JSON no disco, o par substituto não deve estar presente após o carregamento dos dados JSON:

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

Isso produzirá o formato hexadecimal padronizado para o Caractere Unicode:

'\U0001f64f'

Entender essa distinção é essencial para lidar com pares substitutos em Python e convertê-los em um formato utilizável.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3