Python 问题--encode、decode及shell中文输出
1.Python字符串的encode與decode研究心得亂碼問題解決方法;
2.python 中編碼的再次學習
此外,更多詳細字符編碼的可以看看這篇文章–字符編碼詳解
1.encode和decode
(1)字符串在python內部的表示是unicode編碼,所以做編碼轉換的時候就是使用unicode作為中間編碼,先將其他編碼的字符串解碼(decode)成unicode,再從unicode編碼(encode)成另一種編碼。
(2)decode的作用是將其他編碼的字符串轉換成unicode編碼,如str1.decode(‘gb2312’),表示將gb2312編碼的字符串str1轉換成unicode編碼。
(3)encode的作用是將unicode編碼轉換成其他編碼的字符串,如str2.encode(‘gb2312’),表示將unicode編碼的字符串str2轉換成gb2312編碼。
2.判斷類型
可以通過isinstance()函數來判斷字符串是否是unicode還是str類型,
如上圖所示,字符串類型是str,而在要聲明unicode類型則需要在引號前加u。
此外,可以通過下圖的方法獲得系統的默認編碼方式:
因為使用的是win7系統,所以系統默認編碼是ascii。
還可以在代碼中設置默認編碼方式:
3.輸出中文
(1)raw_input方式
如下圖,可以有兩種方式在命令行中能正確輸出中文,而不是亂碼:
(2)print 方式
當采用print時,只需要將中文聲明為unicode類型即可正確顯示。
所以可以根據以下代碼輸出中文,其中’gb2312’也可以換為’gbk’。
#!/usr/bin/env python #coding=utf-8 s="中文" if isinstance(s, unicode): #s=u"中文" print s.encode('gb2312') else: #s="中文" print s.decode('utf-8').encode('gb2312')總結
以上是生活随笔為你收集整理的Python 问题--encode、decode及shell中文输出的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Github|基于 Jittor 的 G
- 下一篇: 精通JavaScript DOM事件