首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Python GUI 中文亂碼終極解決:CSV 編碼檢測、讀取解碼、界面顯示三步走

     編輯:程式設計疑難解答

Python 讀取 CSV 顯示中文亂碼,核心原因通常是「文件實際編碼」與「代碼假設編碼」不一致。僅在文件頭加 # -*- coding=utf-8 -*- 只聲明**源碼文件編碼**,不影響數據讀取。

三步排查法

  1. 確認 CSV 實際編碼:用 Notepad++、VS Code 打開查看右下角(常見:UTF-8、GBK、GB2312、UTF-16)
  2. 指定讀取編碼:
    import pandas as pd
    df = pd.read_csv('data.csv', encoding='gbk')  # 或 utf-8, utf-16
    
  3. GUI 庫正確渲染:
    • Tkinter:Python 3 內部用 Unicode,直接 Label(text=df.iloc[0,0]) 即可
    • PyQt/PySide:QLabel.setText(str(df.iloc[0,0]))
    • 若仍亂碼,檢查字體是否支持中文(如微軟雅黑、SimHei)

通用代碼模板

import chardet  # pip install chardet 自動檢測編碼
with open('data.csv', 'rb') as f:
    raw = f.read(10000)
encoding = chardet.detect(raw)['encoding']
print(f"Detected encoding: {encoding}")

df = pd.read_csv('data.csv', encoding=encoding)
# 後續直接使用 df 中的字符串,Python 3 內部均為 Unicode

原則:邊界處指定編碼,內部統一 Unicode。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved