日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python 问题--encode、decode及shell中文输出

發布時間:2023/12/10 python 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python 问题--encode、decode及shell中文输出 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
最近在使用python的時候,涉及到中文輸出的時候經常會出現亂碼的問題,所以就上網搜索了下,參考了

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。
還可以在代碼中設置默認編碼方式:

reload(sys) sys.setdefaultencoding("utf-8")

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中文输出的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。