django models.TextField() 不能存中文

2015-07-26 19:15:43 +08:00
 ciba1990

Incorrect string value: '\xE6\x94\xB9\xE7\xAB\xAF...' for column 'name_post' at row 1
name_post = models.TextField()
手动print出来又是中文,
在后台admin里面手动改成中文保存还是报错,数据保存形式都改成utf-8了。
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

7573 次点击
所在节点    Python
12 条回复
ciba1990
2015-07-26 19:17:01 +08:00
数据库是mariadb,是不是数据库设置有问题。
ciba1990
2015-07-26 19:21:18 +08:00
英文就一点问题没有,奇了怪了。
lixia625
2015-07-26 22:23:03 +08:00
"\xE6\x94\xB9\xE7\xAB\xAF".decode('utf8')
virusdefender
2015-07-26 23:21:24 +08:00
你怎么创建的数据库?

create database xxx default character set utf-8;

一直没问题
ciba1990
2015-07-26 23:35:25 +08:00
@virusdefender 换成自带的sqlite3就没问题
virusdefender
2015-07-26 23:37:07 +08:00
@ciba1990 肯定是mysql编码问题 试试上面我说的
qqblog
2015-07-26 23:42:21 +08:00
不能同意更多,mysql编码坑,退mysql保平安
mugbya
2015-07-27 09:37:09 +08:00
来 postgresql
shenxgan
2015-07-27 10:18:29 +08:00
我用的没有问题,中文也可以。我是这样创建数据库的:

create database xblog default charset utf8 collate utf8_general_ci;
MrEggNoodle
2015-07-27 10:20:23 +08:00
一直用mysql存中文没问题。四楼可以解决问题。
sinux
2015-07-27 10:41:40 +08:00
mariaDB,直接建表,没指定字符集,django 1.8.3, python3 完全没有这个问题。
hayao650
2015-07-27 18:57:04 +08:00
把表的字符集和字段的字符集都改成u8可破

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/208474

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX