Kri*_*lan 3 django django-models character-encoding
我有以下问题,经过一个小时的搜索,我还没有得到正确的解决方案。
我有一个 MySQL 数据库表,其中包含“长文本”列。为了使用更少的空间来存储该文本列中的文件内容,PHP 中使用了以下压缩方法来存储内容。
$compressed_content = bzcompress($content);
$db_compressed_content = addslashes($compressed_content);
Run Code Online (Sandbox Code Playgroud)
'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, },
},
}
Run Code Online (Sandbox Code Playgroud)
除此之外,如果您不需要使用 unicode,那么您可以将 'use_unicode' 设置为 False 但我想不推荐这样做。
干杯!!!
| 归档时间: |
|
| 查看次数: |
8206 次 |
| 最近记录: |