首頁 後端開發 Python教學 Python2.7 在windows指令視窗 輸出中文亂碼

Python2.7 在windows指令視窗 輸出中文亂碼

Jun 23, 2017 pm 04:01 PM
windows 命令 視窗 輸出

本文實例講述了在windows指令視窗下執行Python檔產生亂碼的問題, 供大家參考:
Ps: 如有錯誤還請指正, 歡迎交流學習

# -*- coding:utf-8 -*-str = "彦雪"print str
登入後複製

執行後, 輸出結果如下:

褰﹂洩
登入後複製

亂碼結果和大家可能不同, 不過也都是亂碼啦!!

##問題分析

Python2 預設編碼為"ascii", ascii編碼不包含中文字元

如果在其中有中文字元的話, Python解釋器一般會報錯.
但如果指定了以UTF-8 編碼, Python就不再報錯.
"# -
- coding:utf-8 --" 是指定Python原始碼以UTF-8 編碼。

window預設編碼為gbk編碼,所以str輸出前必須編碼為gbk。

由於Python中不允許直接將utf-8 轉為gbk, 因此需要先將utf-8 轉為unicode 再轉為gbk

深度分析

這種方法有一種弊端就是當我們在跨平台的時候就會出現問題, 因此Python 為我們提供了一個方便的解決方案使用unicode 作為輸出-- 此方法不適用於raw_input

當需要打印輸出時,Python 會先調取字元輸出程式(命令列或輸出函數)的編碼格式,然後將該字串編碼成字元輸出程式所用的編碼(這樣字元輸出程式就不會因為認不出編碼而出現亂碼),接著字元輸出程式將編碼後的字元輸出到目的地。

解決方法

# 方法一  中文前加u, 告诉Python解释器后面的是个unicode编码str = u"彦雪"
登入後複製
# 方法二  str.decode('utf-8') 以utf-8编码对字符串 str 进行解码, 获取unicodestr = "彦雪".decode('utf-8')
登入後複製
# 方法三  unicode(str, 'utf-8') 将字符串 str 以utf-8编码解码, 获取unicodestr = unicode('彦雪','utf-8')
登入後複製
在windows指令視窗raw_input 顯示亂碼

使用raw_input 需要將中文轉換為系統編碼, 方法如下列所示

# 方法1  str.encode("gbk") 将unicode转为gbk 编码content = raw_input(u"输入内容: ".encode("gbk"))
登入後複製
# 方法2content = raw_input("输入内容: ".decode('utf-8').encode("gbk"))
登入後複製
# 方法3content = raw_input(unicode('输入内容: ','utf-8').encode("gbk"))
登入後複製
##雖然這種寫法很方便, 但是跨平台效果較差, 個人不推薦這種寫法, 建議中文字符和raw_input 分開寫. 通過其他手段達到在同一行的目的

#擴展閱讀


################## #Python的編碼註解# -###- coding:utf-8 -###-#######PEP 263 -- Defining Python Source Code Encodings######關於Python的編碼、亂碼以及Unicode的一些研究######raw_input輸入、檔案讀取、變數比較等str、unicode、utf-8轉換問題######探索######目前離職, 在等待的過程中,分享下以前常遇到的問題和大家探討, 希望對大家有所幫助, 歡迎指正###在分享知識中尋找自我,享受編程之樂###

以上是Python2.7 在windows指令視窗 輸出中文亂碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

可以在 Windows 7 上安裝 mysql 嗎 可以在 Windows 7 上安裝 mysql 嗎 Apr 08, 2025 pm 03:21 PM

是的,可以在 Windows 7 上安裝 MySQL,雖然微軟已停止支持 Windows 7,但 MySQL 仍兼容它。不過,安裝過程中需要注意以下幾點:下載適用於 Windows 的 MySQL 安裝程序。選擇合適的 MySQL 版本(社區版或企業版)。安裝過程中選擇適當的安裝目錄和字符集。設置 root 用戶密碼,並妥善保管。連接數據庫進行測試。注意 Windows 7 上的兼容性問題和安全性問題,建議升級到受支持的操作系統。

mysql 無法連接到本地主機怎麼解決 mysql 無法連接到本地主機怎麼解決 Apr 08, 2025 pm 02:24 PM

無法連接 MySQL 可能是由於以下原因:MySQL 服務未啟動、防火牆攔截連接、端口號錯誤、用戶名或密碼錯誤、my.cnf 中的監聽地址配置不當等。排查步驟包括:1. 檢查 MySQL 服務是否正在運行;2. 調整防火牆設置以允許 MySQL 監聽 3306 端口;3. 確認端口號與實際端口號一致;4. 檢查用戶名和密碼是否正確;5. 確保 my.cnf 中的 bind-address 設置正確。

mySQL下載完安裝不了 mySQL下載完安裝不了 Apr 08, 2025 am 11:24 AM

MySQL安裝失敗的原因主要有:1.權限問題,需以管理員身份運行或使用sudo命令;2.依賴項缺失,需安裝相關開發包;3.端口衝突,需關閉佔用3306端口的程序或修改配置文件;4.安裝包損壞,需重新下載並驗證完整性;5.環境變量配置錯誤,需根據操作系統正確配置環境變量。解決這些問題,仔細檢查每個步驟,就能順利安裝MySQL。

MySQL安裝在特定係統版本上報錯的解決途徑 MySQL安裝在特定係統版本上報錯的解決途徑 Apr 08, 2025 am 11:54 AM

MySQL安裝報錯的解決方法是:1.仔細檢查系統環境,確保滿足MySQL的依賴庫要求,不同操作系統和版本需求不同;2.認真閱讀報錯信息,根據提示(例如缺少庫文件或權限不足)採取對應措施,例如安裝依賴或使用sudo命令;3.必要時,可嘗試源碼安裝並仔細檢查編譯日誌,但這需要一定的Linux知識和經驗。最終解決問題的關鍵在於仔細檢查系統環境和報錯信息,並參考官方文檔。

無法從終端訪問 mysql 無法從終端訪問 mysql Apr 08, 2025 pm 04:57 PM

無法從終端訪問 MySQL 可能是由於:MySQL 服務未運行;連接命令錯誤;權限不足;防火牆阻止連接;MySQL 配置文件錯誤。

mysql怎麼複製粘貼 mysql怎麼複製粘貼 Apr 08, 2025 pm 07:18 PM

MySQL 中的複制粘貼包含以下步驟:選擇數據,使用 Ctrl C(Windows)或 Cmd C(Mac)複製;在目標位置右鍵單擊,選擇“粘貼”或使用 Ctrl V(Windows)或 Cmd V(Mac);複製的數據將插入到目標位置,或替換現有數據(取決於目標位置是否已存在數據)。

vs code 可以在 Windows 8 中運行嗎 vs code 可以在 Windows 8 中運行嗎 Apr 15, 2025 pm 07:24 PM

VS Code可以在Windows 8上運行,但體驗可能不佳。首先確保系統已更新到最新補丁,然後下載與系統架構匹配的VS Code安裝包,按照提示安裝。安裝後,注意某些擴展程序可能與Windows 8不兼容,需要尋找替代擴展或在虛擬機中使用更新的Windows系統。安裝必要的擴展,檢查是否正常工作。儘管VS Code在Windows 8上可行,但建議升級到更新的Windows系統以獲得更好的開發體驗和安全保障。

MySQL安裝後服務無法啟動的解決辦法 MySQL安裝後服務無法啟動的解決辦法 Apr 08, 2025 am 11:18 AM

MySQL拒啟動?別慌,咱來排查!很多朋友安裝完MySQL後,發現服務死活啟動不了,心裡那個急啊!別急,這篇文章帶你從容應對,揪出幕後黑手!讀完後,你不僅能解決這個問題,還能提升對MySQL服務的理解,以及排查問題的思路,成為一名更強大的數據庫管理員! MySQL服務啟動失敗,原因五花八門,從簡單的配置錯誤到復雜的系統問題都有可能。咱們先從最常見的幾個方面入手。基礎知識:服務啟動流程簡述MySQL服務啟動,簡單來說,就是操作系統加載MySQL相關的文件,然後啟動MySQL守護進程。這其中涉及到配置

See all articles