Je suis un débutant python, et j'ai un problème UTF-8.
J'ai une chaîne UTF-8 et je voudrais remplacer toutes les UMLAUTS allemandes avec les remplacements ASCII (en allemand, U-Umlaut 'ؼ 'peut être réécrit comme "ue"). P>
U-Umlaut a le point de code Unicode 252, donc j'ai essayé ceci: p> Je m'attendais à la dernière chaîne d'être Ce que je veux finalement faire est de remplacer toutes les U-Umlauts dans un fichier avec 'ue': p> merci pour votre aider! (J'utilise Python 2.3.) P> P> u'ueber ' code>. p>
4 Réponses :
Vous pouvez simplement utiliser Si vous devez obtenir une version citée du résultat de celui-ci, même si je ne crois pas que vous en auriez besoin, vous pouvez envelopper l'expression entière dans REC (STR) code>
retourne A cité Version de STR code>, que lorsqu'il est imprimé, vous pourrez également taper en tant que Python pour récupérer la chaîne. Donc, c'est une chaîne qui contient littéralement
\ xfcber code>, au lieu d'une chaîne contenant
¼ber code>.
str.replace (UNIHR (252 ), 'ue') code> Pour remplacer le
ؼ code> avec
ue code>. P>
REC code>: p>
Je pense que c'est plus facile et plus clair de le faire de manière plus simple, en utilisant directement la représentation Unicode OS 'ؼ' mieux que UNICHR (252).
#-*- coding: UTF-8 -*-
Un point important: Enregistrez réellement le fichier source dans le codage déclaré dans la déclaration de codage. Beaucoup de gens oublient ça.
Vous devez réellement pouvoir modifier cela comme UTF-8. Si votre système entièrement est défini sur Latin-1, par exemple, cela ne fonctionnera pas, quelle que soit la déclaration de codage dans le fichier. Ce qui signifie que la manière originale d'utiliser Unichr est meilleure si vous ne pouvez pas garantir l'utilisation UTF-8.
J'ai ajouté des informations en raison des commentaires. @mark: Bon point, j'ai eu des problèmes d'éclipse pour cette raison. @jae Je pense que le meilleur moyen de déclarer codage consistant puis de déclarer le personnage comme vous ". Le déclarant comme le numéro Unicode semble être assez déroutant dans le code. Je suis d'accord que cela peut être inévitable dans des situations étranges, mais, dans mon expérience, il est généralement facile d'utiliser le codage approprié.
Vous pouvez éviter tout ce quefrefilefile codant de choses et ses problèmes. Utilisez les noms Unicode, puis c'est évident évident ce que vous faites et que le code peut être lu et modifié n'importe où.
Je ne connais aucune langue dans laquelle la seule lettre latine accentuée est minuscule-umlaut -Aka-diagèse, donc j'ai ajouté du code pour boucler sur une table de traductions sous l'hypothèse que vous en aurez besoin. p> sortie: p> < Pré> xxx pré> p>
Je définirais un dictionnaire de caractères spéciaux (que je veux mapperiez) alors j'utilise Vous obtiendrez le résultat suivant: < / p> Traduire code> méthode.
Notez que la norme UNICODE définit également la peinture de caractères. Ainsi, ü peut également être représenté par la séquence Unicode U + 0075 U + 0308