gpt4 book ai didi

Django 数据库字符集问题

转载 作者:行者123 更新时间:2023-12-02 00:14:51 24 4
gpt4 key购买 nike

我有以下问题,经过一个小时的搜索我还没有找到合适的解决方案。

我有一个 MySQL 数据库表,其中包含“长文本”列。为了使用更少的空间在该文本列中存储文件内容,PHP 中使用了以下压缩方法来存储内容。

$compressed_content = bzcompress($content);
$db_compressed_content = addslashes($compressed_content);

'db_compressed_content' 使用 PHP 本身存储在数据库中。

现在我可以使用 Django 使用数据库内容了。我能够想出模型类来表示表格。 “TextField”用于表示该特定列。

这是我的确切问题,我使用 python 的 'bz2.decompress()' 来解压缩并获取文本内容,但是当我尝试这样做时在 django 下出现“UnicodeEncodeError”。

仅供引用,用于使用 PHP 在数据库中存储内容的字符集是“latin-1”。

最佳答案

答案: Django 使用“utf-8”作为数据库的默认字符集,因此如果您的数据库使用任何其他字符集(大多数遗留数据库将配置为“latin1”),那么字符集需要在数据库设置下明确提及。设置示例:

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'test_db',
'USER': 'root',
'PASSWORD': '',
'HOST': '',
'PORT': '3306',
'OPTIONS': {
'charset': 'latin1',
'use_unicode': True, },
},
}

除此之外,如果您不需要使用 unicode,则可以将 'use_unicode' 设置为 False,但我想不推荐这样做。

干杯!!!

关于Django 数据库字符集问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13686767/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com