Django的中文编码问题

Django真的很强大,用了很短的时间就搭了一个简易的Blog,问题又来了,中文内容存入Mysql中是乱码。

经查,Django默认是采用UTF-8编码的,相关文件的格式也都是UTF-8的,问题应该出在Mysql数据库上面。

我是在Mac OS10.6.2上装的64位mysql,默认编码,没改过

进入mysql,通过status命令查看,果然,编码是Latin1

将其改为UTF-8即可解决

单独修改某个数据库可用alter database testdb character set utf8;

统一修改的话,需要在/usr/local/mysql/support-files下[目录因系统而异],找到下列文件 

my-huge.cnf 
my-large.cnf 
my-small.cnf 
... 
这是配置文件模板,copy到/etc/my.cnf,就可以使用这个配置文件,我用了small文件。

在[mysqld]和[client]两个标签下都加入 default_character_set = utf8

重新启动mysql,status结果如下:

mysql> status

--------------

mysql  Ver 14.14 Distrib 5.1.44, for apple-darwin10.2.0 (i386) using readline 5.1

Connection id: 43

Current database:

Current user: root@localhost

SSL: Not in use

Current pager: stdout

Using outfile: ''

Using delimiter: ;

Server version: 5.1.44 MySQL Community Server (GPL)

Protocol version: 10

Connection: Localhost via UNIX socket

Server characterset: utf8

Db     characterset: utf8

Client characterset: utf8

Conn.  characterset: utf8

UNIX socket: /tmp/mysql.sock

Uptime: 1 hour 4 min 20 sec

Threads: 1  Questions: 238  Slow queries: 0  Opens: 50  Flush tables: 1  Open tables: 4  Queries per second avg: 0.61

--------------

再次运行程序,中文成功持久化。
posted @   池建强  阅读(3206)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示