【问题标题】:Django Tastypie - serving emoji that are stored in dbDjango Tastypie - 提供存储在数据库中的表情符号
【发布时间】:2013-02-17 04:22:06
【问题描述】:

我正在为我的 api 使用 djangotastypie。数据库是 MySQL

经过几天的摆弄,我设法使用 utf8mb4 字符集将表情符号图标存储在数据库中。

当直接从控制台(在 Mac 上)查询数据库时,我看到表情符号很好,但是从 api 中提取它们时(例如使用浏览器),json 显示问号。 这让我相信问题不在于数据库,而在于 django/tastypie 数据库连接。

我该怎么做?

【问题讨论】:

    标签: python django emoji tastypie


    【解决方案1】:

    解决方案在 DJango 设置中:

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

    【讨论】:

      【解决方案2】:

      如果您将 JSON 转储保存到文本文件并使用 UTF8 文本编辑器打开它会怎样?表情符号会重新出现吗?

      我怀疑,当在浏览器中显示 JSON 时,浏览器会退回到 Latin-1 编码,从而以问号结束。您的浏览器中可能有一个设置来设置编码。

      检查来自您的服务器的“Content-Type”标头。是application/json; encoding=utf-8吗?

      【讨论】:

      • 另存为文本没有帮助。内容类型是“application/json”,但没有说“encoding=utf-8”
      • 所以这很可能是问题所在。表情符号是扩展的 Unicode/UTF-8 字符,除非在任何地方都正确指定了编码,否则不会显示。通常,我希望美味的派是 utf-8。他们出现在 django admin 中吗?
      • 跟随你的引导后,我偶然发现了这个:github.com/toastdriven/django-tastypie/issues/717 这是一个错误修复,如果它是 json,则从内容类型中删除字符集
      猜你喜欢
      • 1970-01-01
      • 2017-01-12
      • 1970-01-01
      • 1970-01-01
      • 2018-07-02
      • 2016-08-13
      • 2017-05-05
      • 1970-01-01
      • 2019-10-09
      相关资源
      最近更新 更多