Django Tastypie - 在数据库中存储的表情符号服务

0 投票
2 回答
737 浏览
提问于 2025-04-17 17:43

我正在使用 djangotastypie 来搭建我的 API,数据库是 MySQL

经过几天的摸索,我终于成功地在数据库中存储了表情符号,使用的是 utf8mb4 字符集。

当我直接在控制台(在 Mac 上)查询数据库时,可以正常看到表情符号,但是当我通过 API 拉取数据(比如在浏览器中)时,json 数据里却显示的是问号。这让我觉得问题不在数据库,而是在 django/tastypie 和数据库的连接上。

我该怎么做呢?

2 个回答

0

如果你把JSON数据保存到一个文本文件里,然后用UTF8编码的文本编辑器打开,它的表情符号会重新出现吗?

我猜测,当在浏览器中显示JSON时,浏览器可能使用了Latin-1编码,这样就会出现问号。你的浏览器里可能有个设置可以调整编码方式。

检查一下你服务器发送的“Content-Type”头信息。里面是否写着 application/json; encoding=utf-8

1

解决方案在Django的设置里:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'OPTIONS': {'charset': 'utf8mb4'},
        (...)

撰写回答