您的位置:首页 > 编程语言 > Go语言

关于使用Django admin模块插入中文时乱码的处理方法

2013-01-31 10:32 901 查看
django的models在定义时并没有相关参数来约定数据库和表及表中字段的编码规则。

所以一般情况下,使用manager.py syncdb创建的表均为latin-1编码,这种情况,当你使用admin模块在后台插入
中文数据时,会出现乱码提示。

网上通常的资料是使用sql语句将相关的需要插入中文的字段改为utf-8编码。

这是一种办法,但是,当字段较多时会比较麻烦。
(可以用phpmyadmin等图形管理工具)

其实不用这么麻烦。
出现乱码的根本原因在于,数据库创建表的本身编码不支持utf-8字符,所以从根本上将所有表和字段创建为utf-8编码才是解决方法。
这个思路一方面期待django 后续ORM模块加入对编码的支持。

还有一个方面是从数据库入手,对于mysql来说,可以在其配置文件中加入
[mysqld]

init_connect='SET NAMES utf8'

来解决.
经过测试,效果良好。



在以前的mysql中有这个选项。
default-character-set=utf8

但我在ubuntu 12.04 +mysql5.5的版本中加入此项,会导致mysql无法启动.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: