本站分享:AI、大数据、数据分析师培训认证考试,包括:Python培训Excel培训Matlab培训SPSS培训SAS培训R语言培训Hadoop培训Amos培训Stata培训Eviews培训

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

python培训 cdadata 2829℃

MySQL中文字符与Python中文字符

关键词: python mysql 字符集 python mysql 中文 python mysql中文乱码  python 中文字符

MySQL 数据库方面:
数据库的创建支持UTF8:
CREATE DATABASE db_name DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
很多时候,默认的会选择COLLATE utf8_general_ci,这个对中文支持不好.我就是错在这里了。
Python 编码方面:
1指定文件编码是必须的:

Python代码
  1. #-*-coding:utf-8-*-

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

Python代码
  1. reload(sys);sys.setdefaultencoding(‘utf-8’)

3python的字符串分为”unicode”和”str”
-1  str      是指带有编码的字符串
-2  unicode  是指不带有编码的字符串
这两个概念的相互转换是这样进行的:
str ——>   unicode ——–> str
decode             encode
解码                    编码

举个最简单的例子:

Python代码
  1. <DIV class=quote_title>引用</DIV><DIV class=quote_div>>>> a = ‘中’
  2. >>> a
  3. ‘xd6xd0’
  4. >>> b = u‘中’
  5. >>> b</DIV>u‘u4e2d’ [color=red][b]即保存‘中’的gbk值做为b[/b]

根据上面的描述,b应该是不进行编码的a的值(反正a就是b带有gbk编码的值)
于是,我们可以得到
>>> a.decode( ‘gbk’ )
u’u4e2d’

同样也可以得到
>>> b.encode( ‘gbk’ )
‘xd6xd0’

所以一般的

Python代码
  1. xxx.decode(‘gbk’).encode(‘utf-8’)

4.MySQLdb操作

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

PHP读取操作:

Php代码
  1. <?php
  2. $conn=mysql_connect($hostname=‘127.0.0.1’,$username=‘root’,$password=);
  3. mysql_select_db(‘text’);
  4. mysql_query(“set names ‘utf8′”);
  5. $sql=‘select text from text where id = 1’;
  6. $result=mysql_query($sql,$conn);
  7. while ($row = mysql_fetch_assoc($result)){
  8.  print $row[‘text’];
  9. }
  10. ?>

转载请注明:数据分析 » MySQL中文字符与Python中文字符_ python mysql 字符集

喜欢 (0)or分享 (0)