Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como codificar (utf8mb4) em Python


Eu lutei com a troca correta de toda a gama de caracteres UTF-8 entre Python e MySQL por causa do Emoji e outros caracteres além do codepoint U + FFFF.

Para ter certeza de que tudo funcionou bem, eu tive que fazer o seguinte:
  1. certifique-se de que utf8mb4 foi usado para CHAR , VARCHAR e TEXT colunas no MySQL
  2. aplicar UTF-8 em Python
  3. impor o uso de UTF-8 entre Python e MySQL

Para aplicar o UTF-8 em Python, adicione a seguinte linha como primeira ou segunda linha do seu script Python:
# -*- coding: utf-8 -*-

Para aplicar UTF-8 entre Python e MySQL, configure a conexão MySQL da seguinte forma:
# Connect to mysql.
dbc = MySQLdb.connect(host='###', user='###', passwd='###', db='###', use_unicode=True)

# Create a cursor.
cursor = dbc.cursor()

# Enforce UTF-8 for the connection.
cursor.execute('SET NAMES utf8mb4')
cursor.execute("SET CHARACTER SET utf8mb4")
cursor.execute("SET character_set_connection=utf8mb4")

# Do database stuff.

# Commit data.
dbc.commit()

# Close cursor and connection.
cursor.close()
dbc.close()

Dessa forma, você não precisa usar funções como encode e utf8_encode .