Heim > Artikel > Backend-Entwicklung > Lösen Sie das Problem verstümmelter chinesischer Zeichen beim Abfragen von MySQL in Python2.7
Frage:
Wenn Python2.7 chinesische Daten in MySQL abfragt oder einfügt, werden verstümmelte chinesische Zeichen angezeigt
---
Mögliche Situationen:
1. Für die MySQL-Datenbankelemente ist keine Kodierung festgelegt, die Standardeinstellung ist „Latin“
2. Bei Verwendung von MySQL.connect ist die Standardkodierung nicht festgelegt
3. Die Kodierung von Python ist nicht festgelegt, Python2.7 ist standardmäßig auf „ascii“
eingestellt
4. Keine Dekodierung
---
Lösung:
1. Stellen Sie die Codierung von MySQL ein
Ubuntu führt die folgende Anweisung aus:
** sudo vim /etc/mysql/my.cnf **
Dann fügen Sie die Aussage ein:
[client] default-character-set=utf8 [mysqld] character-set-server=utf8 collation-server=utf8_general_ci
Vim beenden
Starten Sie MySQL neu:
** sudo service mysql restart **
2. Legen Sie die Verbindungskodierungsparameter von MySQLdb im Code fest
db=MySQLdb.connect(user='...',db='...',passwd='...',host='...',charset='utf8') <code>db=MySQLdb.connect(user='...',db='...',passwd='...',host='...',charset='utf8')<br>
3. Legen Sie die Python-Standardkodierung im Code fest
# -*-coding:utf-8 -*- import sys reload(sys) sys.setdefaultencoding('utf-8')
4. Denken Sie daran,
zu dekodieren
t = cursor.fetchall() s = t[0][1].decode('utf-8')
vorbei