使用mysqldb和Python Flask存储和显示表情符号

irtuqstp  于 2023-01-20  发布在  Mysql
关注(0)|答案(1)|浏览(140)

我有一个数据库,表名为posts,有两个字段名为titledescriptiontitledescription都可以包含表情符号。
类似问题的解决方案告诉我使用convert the character set to utf8mb4collate to utf8mb4_bin,并将列类型从text更改为NVARCHAR(255)。我甚至尝试了使用utf8utf8mb4utf8mb4_unicode_ciutf8mb4_general_ci的不同组合。它们都无法显示emoji。

相反,一旦我尝试显示表情符号,这个错误就会弹出。有人能解决这个问题吗?
我尝试对数据库使用unicode和排序规则的不同组合,但似乎都不起作用。

5uzkadbs

5uzkadbs1#

我解决了我的问题。我必须确保charset connectioncollation connection分别被设置为utf8mb4utf8mb4_unicode_ci。我用Flask-MySQLdb库做到了这一点。

from flask_mysqldb import MySQL

app = Flask(__name__)
app.config['MYSQL_HOST'] = 'host'
app.config['MYSQL_USER'] = 'user'
app.config['MYSQL_PASSWORD'] = 'password'
app.config['MYSQL_DB'] = 'db_name'
app.config['MYSQL_CURSORCLASS'] = 'DictCursor'
app.config['MYSQL_CHARSET'] = 'utf8mb4'
app.config['MYSQL_COLLATION'] = 'utf8mb4_unicode_ci'

mysql = MySQL(app)

相关问题