Décoder chaîne de caractères hexadécimaux en python 2
J'ai une chaîne hexadécimale et je veux le convertir en utf8 pour insérer mysql. (ma base de données est utf8)
hex_string = 'kitap ara\xfet\xfdrmas\xfd'
...
result = 'kitap araştırması'
Comment puis-je le faire?
- Avez-vous définir hex_string dans votre code source ou d'une source externe?
Vous devez vous connecter pour publier un commentaire.
En Supposant Que La Version 2.6 De Python,
Essayer(Python 3.x):
De ici.
Essayer
(
cp1254
ouiso-8859-9
sont le turc pages de code, le premier étant le nom habituel sur les plates-formes Windows, mais en Python, les deux fonctionnent aussi bien)Abord, vous avez besoin de le décoder à partir de l'encodage d'octets que vous avez. Qui semble être ISO-8859-9 (latin-5), ou, si vous utilisez Windows, probablement code de la page 1254, qui est basé sur le latin-5.
Si vous sont à l'aide de Windows, puis selon l'endroit où vous êtes l'obtention de ces octets, il pourrait être plus approprié de les décoder comme
mbcs
, qui se traduit par " quel que soit le code de la page, le système local est à l'aide’. Si la chaîne est juste assis dans un.py
fichier, vous feriez mieux de l'écrireu'kitap araştırması'
dans la source et la définition d'un-*- coding
déclaration directe Python pour les décoder. Voir PEP 263.Quant à la façon de coder les chaînes unicode en UTF-8 pour la base de données, eh bien, si vous voulez, vous pouvez le faire manuellement:
mais une bonne couche d'accès aux données est susceptible de le faire automatiquement pour vous, si vous avez la
COLLATION
des tables de données est en cours dans la droite.Les littéraux de chaîne explique comment utiliser l'UTF8 chaînes de caractères en Python source.