0
我將在Django的測試包含Unicode字符線時遇到了此問題時:在MySQL的歸類非法混合插入的Unicode數據庫
InternalError: (1267, u"Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8mb4_general_ci,COERCIBLE) for operation '='")
罪魁禍首:
نعليقات و
那麼現在我做了一些研究,並建議我做:
SET collation_connection = 'utf8_general_ci'
ALTER DATABASE your_database_name CHARACTER SET utf8 COLLATE utf8_general_ci
ALTER TABLE your_table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci
我跟着這個例子,做了這個而不是在Django:
cursor = connection.cursor()
cursor.execute('SHOW TABLES')
results = []
for row in cursor.fetchall():
results.append(row)
cursor.execute(
'ALTER DATABASE mydb CHARACTER SET utf8mb4 '
'COLLATE utf8mb4_general_ci;')
for row in results:
cursor.execute(
'ALTER TABLE %s CONVERT TO CHARACTER SET utf8mb4 '
'COLLATE utf8mb4_general_ci;' % (row[0]))
注:爲什麼我需要它是MB4的原因是因爲我需要支持表情符號:
Happy Birthday! タクミ!
我有這樣的: '選項':{ '字符集': 'utf8mb4'}, –
您可能還需要'use_unicode';我不知道。 –