Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да кодирам (utf8mb4) в Python

Борих се с правилния обмен на пълния набор от UTF-8 знаци между Python и MySQL в името на Emoji и други знаци извън кодовата точка U+FFFF.

За да съм сигурен, че всичко работи добре, трябваше да направя следното:

  1. уверете се, че utf8mb4 беше използван за CHAR , VARCHAR и TEXT колони в MySQL
  2. прилагане на UTF-8 в Python
  3. приложете UTF-8 да се използва между Python и MySQL

За да наложите UTF-8 в Python, добавете следния ред като първи или втори ред на вашия Python скрипт:

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

За да наложите UTF-8 между Python и MySQL, настройте MySQL връзката, както следва:

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

По този начин не е необходимо да използвате функции като encode и utf8_encode .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL ISNULL() Обяснено

  2. Дизайн на база данни за приложения, използващи хештагове

  3. Търсене и филтриране/прецизиране на резултатите от базата данни в Laravel 4

  4. Може ли JavaScript да се свърже с MySQL?

  5. Запазители с множество имена на PDO не извличат данни