Maison  >  Article  >  développement back-end  >  Comment convertir des paires de substitution en chaînes normales en Python ?

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

Linda Hamilton
Linda Hamiltonoriginal
2024-11-04 06:18:29957parcourir

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 :

<code class="python">emoji = "This is \ud83d\ude4f, an emoji."</code>

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

Si la chaîne est un caractère unique paire de substitution 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é :

<code class="python">"\ud83d\ude4f".encode('utf-16', 'surrogatepass').decode('utf-16')</code>

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 :

<code class="python">ascii(json.loads(r'"\ud83d\ude4f"'))</code>

Cela affichera le format hexadécimal standardisé 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.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn