Si vous mettez les données dans MySQL par vous-même, elles ne seront pas déformées si vous les supprimez avec sqlalchemy, mais si vous les placez dans le fichier de vidage que vous avez reçu d'un ami, elles seront déformées si vous les supprimez avec sqlalchemy / (^ o ^) \
Lorsque vous utilisez sqlalchemy pour déplacer des données d'entrée et de sortie, ** Insérer et extraire (sélectionner) utilise toujours le même code de caractère (paramètre). ** **
Cette fois, les bases suivantes? J'essayais d'établir une bonne connexion.
# -*- coding: utf-8 -*-
from sqlalchemy import create_engine,
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import MetaData
#Traitement lié à la connexion avec db
engine = create_engine('mysql://username:password@localhost/dbname?charset=utf8')
Base = declarative_base()
metadata = MetaData()
Session = sessionmaker(bind=engine)
session = Session()
Il n'y a pas de problème fatal si vous l'installez et le retirez vous-même. Cependant, soyez prudent lorsque vous manipulez des données reçues d'autres personnes avec sqlalchemy.
Cette fois, j'ai récupéré un fichier de vidage de mysql et j'ai inséré les données, mais quand je l'ai sorti via sqlalchemy, les caractères étaient déformés / (^ o ^) \
moi même:
create_engine('mysql://username:password@localhost/dbname')
charset n'est pas défini sur utf-8 / (^ o ^) \
Adversaire: Le jeu de caractères a été correctement défini sur utf-8. (Je n'ai pas utilisé sqlalchemy parce que j'insérais des données dans MySQL avec des rails.)
Je l'ai réécrit comme suit.
create_engine('mysql://username:password@localhost/dbname?charset=utf8')
Je viens d'ajouter? Charset = utf8 à la fin. Cependant, le flux suivant n'est pas bon.
Insérer des données (sans? Charset = utf8) ↓ Extraire les données (avec? Charset = utf8 ajouté) Les caractères sont déformés.
Insérons et récupérons des données avec les mêmes paramètres. En d'autres termes
Insérer des données (avec? Charset = utf8 ajouté) ↓ Extraire les données (avec? Charset = utf8 ajouté)
De cette façon, les caractères déformés ne se produiront pas.
Et vice versa. Si vous avez inséré les données sans? Charset = utf8, récupérez-les sans? Charset = utf8.
Si vous récupérez les données avec? Charset = utf8 attaché, les données de caractère seront renvoyées en Unicode. Si vous n'avez pas ajouté? Charset = utf8, il a été renvoyé ascii.
Je veux faire Python3 dès que possible \ (^ o ^) /
Recommended Posts