国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python sqlobject(mysql)中文亂碼解決方法

2019-11-25 18:45:45
字體:
來源:轉載
供稿:網友
UnicodeEncodeError: 'latin-1' codec can't encode characters in position;
找了一天終于搞明白了,默認情況下,mysql連接的編碼是latin-1,你需要指定使用什么編碼方式:
connectionForURI(mysql://user:password@localhost:3306/eflow?use_unicode=1&charset=utf8)

Python mysql 中文亂碼 的解決方法,有需要的朋友不妨看看。
 
先來看一段代碼:

復制代碼 代碼如下:

import MySQLdb
  db_user = "tiger"
  db_pw = "tiger"
  db = MySQLdb.connect(host="localhost", user=db_user, passwd=db_pw ,db="finaltldw",charset="gb2312")
  c = db.cursor()
  c.execute("""select id, name from NODES""")
  i=0;
  for id, name in c.fetchall():
   print "%2d %s" % (id, name)
   i=i+1
   if i==100:
   break

返回結果:
  1 TOP
  2 教育
  3 機構
  4 人
  5 地區
  6 單位
  7 科學研究
  8 實驗室
  9 類型
    
  如果編碼是UTF-8
  轉載一個解決方案: 其中的use db
  
  Python操作MySQL以及中文亂碼的問題
  Python操作MySQL需要安裝Python-MySQL
  可以從網上搜索一下,和一般的Python包一樣安裝
  
  安裝好之后,模塊名字叫做MySQLdb ,在Window和Linux環境下都可以使用,試驗了一下挺好用,
  不過又發現了煩人的亂麻問題,最后用了幾個辦法,解決了!
  
  我用了下面幾個措施,保證MySQL的輸出沒有亂麻:
   1 Python文件設置編碼 utf-8 (文件前面加上 #encoding=utf-8)
   2 MySQL數據庫charset=utf-8
   3 Python連接MySQL是加上參數 charset=utf8
   4 設置Python的默認編碼為 utf-8 (sys.setdefaultencoding(utf-8)
  mysql_test.py 

復制代碼 代碼如下:

#encoding=utf-8
  import sys
  import MySQLdb
  
  reload(sys)
  sys.setdefaultencoding('utf-8')
  
  db=MySQLdb.connect(user='root',charset='utf8')
  cur=db.cursor()
  cur.execute('use mydb')
  cur.execute('select * from mytb limit 100')
  
  f=file("/home/user/work/tem.txt",'w')
  
  for i in cur.fetchall():
   f.write(str(i))
   f.write(" ")
  
  f.close()
  cur.close()

上面是linux上的腳本,windows下運行正常!
  
  注:MySQL的配置文件設置也必須配置成utf8
  
  設置 MySQL 的 my.cnf 文件,在 [client]/[mysqld]部分都設置默認的字符集(通常在/etc/mysql/my.cnf):
  [client]
  default-character-set = utf8
  [mysqld]
  default-character-set = utf8

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 伽师县| 南城县| 南平市| 崇义县| 临沧市| 彩票| 广饶县| 漾濞| 勐海县| 桑日县| 高邑县| 武平县| 侯马市| 西盟| 灵山县| 长葛市| 铁岭县| 海原县| 莱西市| 谢通门县| 囊谦县| 依兰县| 通河县| 资溪县| 云梦县| 贡嘎县| 岚皋县| 广灵县| 嘉善县| 土默特右旗| 辽宁省| 台安县| 仁布县| 东宁县| 岳西县| 隆尧县| 南澳县| 林州市| 比如县| 都江堰市| 万山特区|