谷歌云SQL mysql emoji (1366, "Incorrect string value: '\xF0\x9F\x98\x80\xF0\x9F...'



当我使用 my-app.appspot.com 时,我无法将表情符号发布到数据库 但是当我在本地python manage.py runserverGAE 上使用相同的库运行它时,一切正常,我可以发布和检索表情符号。

这是我的设置.py

import os
if os.getenv('SERVER_SOFTWARE', '').startswith('Google App Engine'):
# Running on production App Engine, so use a Google Cloud SQL database.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'HOST': '/cloudsql/my-app:us-central1:my-app-mysql',
'NAME': '********',
'USER': 'root',
'PASSWORD': '*********',
}
}
else:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '*******',
'USER': 'root',
'PASSWORD': '*********',
'HOST': '**********',
'PORT': '3306',
'OPTIONS': {
'charset': 'utf8mb4',
}
}
}

这是使用Cloud Shell时的字符集

mysql> SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';
+--------------------------+--------------------+
| Variable_name            | Value              |
+--------------------------+--------------------+
| character_set_client     | utf8               |
| character_set_connection | utf8               |
| character_set_database   | utf8mb4            |
| character_set_filesystem | binary             |
| character_set_results    | utf8               |
| character_set_server     | utf8mb4            |
| character_set_system     | utf8               |
| collation_connection     | utf8_general_ci    |
| collation_database       | utf8mb4_general_ci |
| collation_server         | utf8mb4_general_ci |
+--------------------------+--------------------+
10 rows in set (0.15 sec)

这是我使用来自另一个客户端的数据库 IP 进行连接时的字符集

Variable_name                        Value
character_set_client                utf8
character_set_connection            utf8mb4
character_set_database              utf8mb4
character_set_filesystem            binary
character_set_results               utf8
character_set_server                utf8mb4
character_set_system                utf8
collation_connection                utf8mb4_unicode_ci
collation_database                  utf8mb4_general_ci
collation_server                    utf8mb4_general_ci

我错过了什么?!!

如何制作工作?

谢谢 https://github.com/GoogleCloudPlatform/appengine-django-skeleton/issues/28

waprin:@EssaAlshammri复制,向工程团队提交内部错误,将使您保持更新。

来自 GitHub 问题

您可以尝试将 base64 编码传入和传出数据库作为解决方法。

它工作正常。

您可以等到他们解决问题

相关内容

最新更新