[Python]MySQL中文字元與Python中文字元

經過30個小時的coding,終於解決了編碼問題.現在把過程和體會記錄下來:P MySQL 資料庫方面: 資料庫的創建支持UTF8: CREATE DATABASE db_name DEFAULT CHARACTER SET utf8 COLLATE utf8_bin; 很多時候,默認的會選擇COLLATE utf8_general_ci,這個對中文支持不好.我就是錯在這裡了。 Python 編碼方面: 1指定文件編碼是必須的: Python代碼

  1. #-*-coding:utf-8-*-

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

2某些環境下可以使用這個: Python代碼

  1. reload(sys);sys.setdefaultencoding("utf-8")

reload(sys);sys.setdefaultencoding("utf-8")

3python的字元串分為"unicode"和"str" -1 str 是指帶有編碼的字元串 -2 unicode 是指不帶有編碼的字元串 這兩個概念的相互轉換是這樣進行的: str ------> unicode --------> str decode encode 解碼 編碼 舉個最簡單的例子: Python代碼

  1. <DIVclass=quote_title>引用</DIV><DIVclass=quote_div>>>>a="中"
  2. >>>a
  3. "xd6xd0"
  4. >>>b=u"中"
  5. >>>b</DIV>u"u4e2d"[color=red][b]即保存"中"的gbk值做為b[/b]

引用>>> a = "中">>> a"xd6xd0">>> b = u"中">>> bu"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")

xxx.decode("gbk").encode("utf-8")

4.MySQLdb操作 Python代碼

  1. conn=MySQLdb.connect(host,usr,pwd,db,charset="utf8")

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("setnames"utf8"");
  5. $sql="selecttextfromtextwhereid=1";
  6. $result=mysql_query($sql,$conn);
  7. while($row=mysql_fetch_assoc($result)){
  8. print$row["text"];
  9. }
  10. ?>

<?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"];}?>

更多可以參考: http://www.blogjava.net/vulcan/articles/160978.html http://www.yuanma.org/data/2006/0907/article_1476.htm
推薦閱讀:

秋色斑斕,文字絢爛
美國動作/戰爭電影《陰影突擊隊》[中文字幕版]
阿拉伯字母是不是從古到今沒有變化(就類似於漢字的甲骨文到簡體中文的變化那類的)?
你是我筆下寫不完的文字
修行與生活座談會 第四十三集(國語) 視頻、文字

TAG:Python | MySQL | 文字 | 字元 | 中文 |