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

Python 2.7 中文編碼亂碼問題:EditPlus 運行報錯解決指南

     編輯:程式設計疑難解答

現象

Win7 + Python 2.7.8,源文件聲明 # -*- coding: utf-8 -*-,u'中文' 正常輸出;但在 EditPlus 內運行報錯。

核心原因

  1. 控制台編碼非 UTF-8:Windows 默認控制台代碼頁為 CP936 (GBK),Print 到控制台時隱式編碼轉換失敗。
  2. EditPlus 運行參數:未正確傳遞 -u (無緩衝) 或環境變量 PYTHONIOENCODING=utf-8。

解決方案

方案一:設置控制台代碼頁(臨時)

import sys
import os
os.system('chcp 65001')  # 切換到 UTF-8
# 之後 print 正常

方案二:配置 EditPlus 運行參數(推薦)

  1. 工具 → 設置用戶工具 → Python → 參數:-u "$(FilePath)"
  2. 初始目錄:$(FileDir)
  3. 勾選「捕獲輸出」。
  4. 環境變量添加:PYTHONIOENCODING=utf-8。

方案三:代碼層面強制編碼

import sys
import io
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding='utf-8')

方案四:遷移至 Python 3.x(根治)

Python 3 默認源碼 UTF-8、字符串為 Unicode、print 為函數、控制台編碼處理更完善。強烈建議新專案直接使用 Python 3.8+。

知識點總結

概念Python 2Python 3
源碼默認編碼ASCII(需聲明)UTF-8
字符串類型str=bytes, unicode=textstr=text, bytes=bytes
print語句函數
控制台編碼處理極易出錯自動適配

參考資源

詳細排查:ChinaUnix Python 編碼詳解

總結

EditPlus 運行 Python 2 亂碼本質是「源碼 UTF-8」與「控制台 GBK」不匹配。配置 PYTHONIOENCODING=utf-8 或遷移 Python 3 可徹底解決。

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