python mysql 字符集_MySQL中文字符与Python中文字符_ python mysql 字符集

MySQL中文字符与Python中文字符

MySQL 数据库方面:

数据库的创建支持UTF8:

CREATE DATABASE db_name DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

很多时候,默认的会选择COLLATE utf8_general_ci,这个对中文支持不好.我就是错在这里了。

Python 编码方面:

1指定文件编码是必须的:

Python代码

#-*-coding:utf-8-*-

2某些环境下可以使用这个:

Python代码

reload(sys);sys.setdefaultencoding(‘utf-8’)

3python的字符串分为”unicode”和”str”

-1  str      是指带有编码的字符串

-2  unicode  是指不带有编码的字符串

这两个概念的相互转换是这样进行的:

str ——>   unicode ——–> str

decode             encode

解码                    编码

举个最简单的例子:

Python代码

引用
>>> a = ‘中’

>>> a

‘xd6xd0’

>>> b = u‘中’

>>> b

u‘u4e2d’ [color=red][b]即保存‘中’的gbk值做为b[/b]

根据上面的描述,b应该是不进行编码的a的值(反正a就是b带有gbk编码的值)

于是,我们可以得到

>>> a.decode( ‘gbk’ )

u’u4e2d’

同样也可以得到

>>> b.encode( ‘gbk’ )

‘xd6xd0’

所以一般的

Python代码

xxx.decode(‘gbk’).encode(‘utf-8’)

4.MySQLdb操作

Python代码

conn=MySQLdb.connect(host,usr,pwd,db,charset=‘utf8’)

PHP读取操作:

Php代码

$conn=mysql_connect($hostname=‘127.0.0.1’,$username=‘root’,$password=”);

mysql_select_db(‘text’);

mysql_query(“set names ‘utf8′”);

$sql=‘select text from text where id = 1’;

$result=mysql_query($sql,$conn);

while ($row = mysql_fetch_assoc($result)){

print $row[‘text’];

}

?>

喜欢 (0)or分享 (0)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值