Python论坛  - 讨论区

标题:[python-chinese] [OT]MySQL时的中文处理基本思路

2007年03月06日 星期二 17:07

Zoom.Quiet zoom.quiet在gmail.com
星期二 三月 6 17:07:59 HKT 2007

结合 http://wiki.woodpecker.org.cn/moin/BPUG/2007-03-03
的unicode 本质思考,可以更加自然的理解为什么要将用UTF-8的MySQL

[FW]http://bbs.chinaunix.net/viewthread.php?tid=905650&extra;=page%3D1

以下是我最近写两个小程序时用 MySQLdb 的一些经验,用以解决中文问题。原文。

请大家指教:

再此再总结一下,上面的方法还不够全面:

* 设置 MySQL 的 my.cnf 文件,在 [client]/[mysqld]部分都设置默认的字符集:

CODE:
[Copy to clipboard]
[client]
default-character-set = utf8
[mysqld]
default-character-set = utf8
该设置需要重新启动 MySQL 服务器。启动之后在 mysql 命令行下可以用 'status' 命令查看:

CODE:
[Copy to clipboard]
mysql> status
--------------
mysql  Ver 14.12 Distrib 5.0.26, for -netbsdelf (i386) using  EditLine wrapper

Connection id:          16
Current database:
Current user:           root在localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         5.0.26-log
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 7 min 49 sec
* 在创建表的时候,加上 default character='utf8' 这样的语句:

CODE:
[Copy to clipboard]
CREATE TABLE IF NOT EXISTS table_name (key, key, key)
    VALUES (value, value, value)
    DEFAULT CHARACTER='utf8'
* 在执行 MYSQL 语句时先执行 'SET NAMES 'utf8'' 语句:

CODE:
[Copy to clipboard]
SET NAMES 'utf8'
这样基本就能搞定中文问题了。

-- 
'''Time is unimportant, only life important!
http://zoomquiet.org
blog在http://blog.zoomquiet.org/pyblosxom/
wiki在http://wiki.woodpecker.org.cn/moin/ZoomQuiet
scrap在http://floss.zoomquiet.org
douban在http://www.douban.com/people/zoomq/
____________________________________
Pls. use OpenOffice.org to replace M$ Office.
     http://zh.openoffice.org
Pls. use 7-zip to replace WinRAR/WinZip.
     http://7-zip.org/zh-cn/
You can get the truely Freedom 4 software.
'''

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号