日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

解决python连接mysql,UTF-8乱码问题

發布時間:2025/3/8 数据库 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 解决python连接mysql,UTF-8乱码问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在測試“Bluemix云端數據庫服務ClearDB MySQL使用示例———Python開發投票程序”的程序時,從MySQL中讀取的中文輸出到網頁顯示都是問號,如下圖:


解決方法:

產生亂碼問題,通常都是由于幾方面的編碼不統一導致的,請檢查以下編碼是否一致:

1、最好統一使用?utf-8 編碼,對各種字符集支持的都很好!

2、網頁的編碼

<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Bluemix云端數據庫服務ClearDB MySQL使用示例———Python投票程序 - 無知人生,記錄點滴</title>

3、MySQL 數據庫使用的編碼


排序規則保持默認值即可。

這是用的什么數據庫管理工具?

MySQL 圖形界面管理工具Navicat for MySQL

如果是現有的數據庫,我們可以通過以下查詢語句查看一下:

SHOW VARIABLES LIKE '%char%';

輸出如下圖:


最關鍵的是要看“character_set_server”是否為 utf-8 編碼,通常是因為?character_set_server 的編碼為?latin1 而產生亂碼的原因。

解決方法,執行語句修改:

set character_set_server='utf8'; 注意:這里是“utf8”,而不是“utf-8”,中間不需要有減號。


4、Python連接數據庫使用的編碼

conn=MySQLdb.connect(host='localhost',user='root',passwd='123456',db='test',port=3306) cur=conn.cursor() cur.execute('SET NAMES UTF8')

5、Python的默認編碼

import sys #提供了許多函數和變量來處理 Python 運行時環境的不同部分.reload(sys) sys.setdefaultencoding('utf8')

結束語

將編碼都統一之后,亂碼的問題應該就解決了,現在很多語言默認編碼都是 utf-8 了,

我遇到最多的就是數據庫?character_set_server 的編碼和連接數據庫時使用的編碼不一致導致的問題。

如果你還沒有解決,請把你遇到的情況告訴我。

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的解决python连接mysql,UTF-8乱码问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。