python2.七、notepad++及sublime text3中文亂碼

問題:使用notepad++或sublime text3編輯的python文件若是含有中文,使用python2.7運行會出現亂碼。python

緣由:windows

  windows的本地默認編碼是gbk編碼。python2.7

  notepad++、windows自己的寫字板以及sublime text3的默認編碼都是utf-8編輯器

  windows記事本的默認編碼是ANSI。ANSI並非某一種特定的字符編碼,而是在不一樣的系統中,ANSI表示不一樣的編碼。在中文系統中就是gbk編碼。編碼

  這就是爲何用記事本編輯的python文件,用python2.7運行中文不會出現亂碼。而用notepad++、windows自己的寫字板以及sublime text3編輯的python文件,用python2.7運行中文會出現亂碼的緣由。命令行

解決方法:code

1、經過將中文先解碼(解碼成unicode碼)再編碼(編碼成gbk)的方式解決,以下:  blog

# coding=utf-8
# 等待用戶輸入
inp=raw_input("請輸入用戶名:".decode("utf-8").encode("gbk"))
print inp

2、在編輯器中設置編碼格式ip

 

備註:utf-8

那麼Windows系統是如何區分ANSI背後的真實編碼的呢?

微軟用一個叫「Windows code pages」(在命令行下執行chcp命令能夠查看當前code page的值)的值來判斷系統默認編碼,好比:簡體中文的code page值爲936(它表示GBK編碼,win95以前表示GB2312,詳見:Microsoft Windows' Code Page 936),繁體中文的code page值爲950(表示Big-5編碼)。

相關文章
相關標籤/搜索