Python學習筆記(二)-NotePad++中文顯示問題

Python學習筆記(二)

—NotePad++中文顯示問題

  • 引子
    博主在學習Python期間,因爲書上例子都是使用英語交互的,因此博主在練習時,想要使用中文交互,可是發現命令行一直報錯,經差資料,才找出解決辦法,在此分享給大家。

  • 問題
    原始代碼

string = raw_input('請輸入字符串:');
print '你輸入字符串爲:%s’%(string)
num=raw_input('請輸入數字:')
print ='你輸入數字爲:%d'%(int(num))

報錯: File “G:\python\程序\第二章\a.py”, line 1
SyntaxError: Non-ASCII character ‘\xe8’ in file G:\python\程序\第二章\a.py on line 1, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
請按任意鍵繼續…

顯示編碼錯誤,NotePad++默認編碼爲utf-8,而命令行爲ASCII.

  • 解決方法
    首先,在代碼前加一句#_*_coding:utf-8_*_,至於爲什麼,參考這個博文Python的編碼註釋# -- coding:utf-8 --
    那麼,之後程序就不報錯了,但會出現亂碼。
#_*_coding:utf-8_*_
string = raw_input('請輸入字符串:')
print '你輸入字符串爲:%s' %(string)
num=raw_input('請輸入數字:')
print '你輸入數字爲:%d'%(int(num))

這裏寫圖片描述

1.解決raw_print()亂碼
使用強制轉換string = raw_input (unicode('請輸入字符串','utf-8').encode('gbk'))

#_*_coding:utf-8_*_
string=raw_input((unicode('請輸入字符串:','utf-8').encode('gbk')))
print '你輸入字符串爲:%s' %(string)
num=raw_input((unicode('請輸入數字:','utf-8').encode('gbk')))
print '你輸入數字爲:%d'%(int(num))

這裏寫圖片描述

這時我們可以發現,請求輸入語句已經恢復正常,但是print輸出卻還是亂碼。

2.解決print亂碼
解決辦法:在字符串前加u(Unicode編碼)。

#_*_coding:utf-8_*_
string=raw_input((unicode('請輸入字符串:','utf-8').encode('gbk')))
print u'你輸入字符串爲:%s' %(string)
num=raw_input((unicode('請輸入數字:','utf-8').encode('gbk')))
print u'你輸入數字爲:%d'%(int(num))

這裏寫圖片描述

這時,中文亂碼問題已全部解決。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章