sql >> Databasteknik >  >> RDS >> Mysql

Hur man kodar (utf8mb4) i Python

Jag har själv kämpat med korrekt utbyte av hela utbudet av UTF-8-tecken mellan Python och MySQL för Emojis skull och andra tecken bortom U+FFFF-kodpunkten.

För att vara säker på att allt fungerade bra var jag tvungen att göra följande:

  1. se till att utf8mb4 användes för CHAR , VARCHAR och TEXT kolumner i MySQL
  2. framtvinga UTF-8 i Python
  3. framtvinga UTF-8 som ska användas mellan Python och MySQL

För att genomdriva UTF-8 i Python, lägg till följande rad som första eller andra raden i ditt Python-skript:

# -*- coding: utf-8 -*-

För att tvinga fram UTF-8 mellan Python och MySQL, ställ in MySQL-anslutningen enligt följande:

# 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()

På så sätt behöver du inte använda funktioner som encode och utf8_encode .



  1. Mysql infoga i 2 tabeller

  2. Hur man skapar en fråga i Drupal 8

  3. Importera en CSV till MySQL med annat datumformat

  4. Praktiskt processorval för SQL Server 2014/2016 OLTP-arbetsbelastningar