关于使用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无法启动.
所以一般情况下,使用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无法启动.
相关文章推荐
- ubuntu 12.04使用gedit打开txt文件中文乱码的处理方法
- 关于MySQL的dos客户端中文插入和显示utf-8乱码的解决方法
- 关于RCP项目使用UTF-8编码,导出后中文乱码的解决方法。
- 03_MySQL中文乱码处理_02_确保MySQL插入数据不乱码的解决方法
- 关于使用ThinkPHP从Mssql2005中查询中文乱码的处理
- 关于Struts2使用redirectAction方式在两个Action之间传值时中文乱码问题的解决方法
- 关于hibernate插入mysql数据库中文数据乱码处理
- 关于使用JDBC连接MySQL数据库插入中文乱码
- Delphi+MySQL:TADOQuery使用插入中文乱码解决方法
- 关于处理中文乱码的一些方法
- 关于Mysql插入中文时报错代码为1366的相关处理及插入中文乱码问题相关处理
- 关于使用java从http接口取数据保存到本地文件的中文乱码处理
- C(.net)中使用jQuery的POST方法提交中文乱码的处理
- 关于使用java从http接口取数据保存到本地文件的中文乱码处理
- 解决Django admin 插入中文时候出现乱码问题
- 解决Django admin 插入中文时候出现乱码问题
- 关于RCP项目使用UTF-8编码,导出后中文乱码的解决方法。
- Delphi+MySQL:TADOQuery使用插入中文乱码解决方法
- Java插入MySQL中文乱码,简单的处理方法
- URL链接中文参数乱码的若干处理方法