"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment convertir des paires de substitution en chaînes normales en Python ?

Comment convertir des paires de substitution en chaînes normales en Python ?

Publié le 2024-12-21
Parcourir:448

How to Convert Surrogate Pairs to Normal Strings in Python?

Conversion de paires de substitution en chaîne normale en Python

Cette question recherche une méthode pour transformer une chaîne Python Unicode contenant des paires de substitution en une chaîne standard représentation. Le but est d'obtenir un caractère Unicode intelligible ou un format hexadécimal standardisé.

L'extrait de code fourni présente une chaîne Python qui inclut une paire de substitution représentant un emoji :

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

Pour résoudre le problème, il est crucial de faire la distinction entre les chaînes de paires de substitution littérales dans un fichier JSON sur le disque (six caractères) et des chaînes de paires de substitution à un seul caractère en mémoire (un caractère).

Si la chaîne est une paire de substitution à un seul caractère trouvée dans le code source Python (comme l'exemple fourni ), cela indique un bug potentiel en amont. Si cela se produit et ne peut pas être résolu, le gestionnaire d'erreurs surrogatepass peut être utilisé :

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

Cela affichera le caractère Unicode correspondant, représenté sous la forme d'un point d'interrogation (?):

'?'

Dans le cas de chaînes de paires de substitution littérales dans un fichier JSON sur disque, la paire de substitution ne doit pas être présente après le chargement des données JSON :

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

Cela affichera le format standardisé Format hexadécimal pour le caractère Unicode :

'\U0001f64f'

Comprendre cette distinction est essentiel pour gérer les paires de substitution en Python et les convertir dans un format utilisable.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3