gpt4 book ai didi

python - Mysql 不从 Aqua data studio 或 Django 返回现有行

转载 作者:行者123 更新时间:2023-11-29 23:46:08 24 4
gpt4 key购买 nike

我有一个特殊的问题:

我有一个表,在某些列中包含希腊语的 varchar 和文本,有时与一些英语混合在一起。

当我进行如下选择查询时:

select * from table where col_name = 'Greek String'

select * from table where col_name like '%Greek String%'

(当然“希腊字符串”是带有希腊字母的)

如果从 mysql 控制台调用这些查询,它们将返回正确的行如果从 Aqua Data Studio 内部或从 Django 调用它们(使用 Django 查询方法和数据模型),那么它们不会返回任何内容!

如果 col_name = 'Latin String' 或 col_name like '%Latin String%',相同的查询可以从任何地方正确返回所有内容

数据库默认字符集是latin1

表格的默认字符集是希腊语

有问题的列的默认字符集也是希腊语

有人知道为什么会发生这种情况吗?

最佳答案

Django的默认字符集是utf8。最好的方法是将数据库字符集也转换为 utf8。否则,您可以在 settings.py 中设置另一个字符集,在“DATABASES”下指定键“OPTIONS”并添加如下内容:

“选项”:{
'字符集': 'latin1',
'use_unicode': True, # 最终也可能需要这一行
}

不过,我建议在整个项目中一致使用 utf8。您可以使用带有 utf8 的希腊字母。

关于python - Mysql 不从 Aqua data studio 或 Django 返回现有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25933227/

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