zoukankan      html  css  js  c++  java
  • 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

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

    再次运行程序,中文成功持久化。
  • 相关阅读:
    mktemp -t -d用法
    使用getopts处理输入参数
    linux中$1的意思
    linux中的set -e 与set -o pipefail
    在windows 7 和linux上安装xlwt和xlrd
    nginx map使用方法
    Linux crontab下关于使用date命令和sudo命令的坑
    东哥讲义
    ldapsearch使用
    date 命令之日期和秒数转换
  • 原文地址:https://www.cnblogs.com/chijianqiang/p/2041593.html
Copyright © 2011-2022 走看看