Python 讀取 CSV 顯示中文亂碼,核心原因通常是「文件實際編碼」與「代碼假設編碼」不一致。僅在文件頭加 # -*- coding=utf-8 -*- 只聲明**源碼文件編碼**,不影響數據讀取。
import pandas as pd
df = pd.read_csv('data.csv', encoding='gbk') # 或 utf-8, utf-16
Label(text=df.iloc[0,0]) 即可QLabel.setText(str(df.iloc[0,0]))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。