日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

python 編碼處理

系統 1791 0

一、python有兩種字符串類型:str和unicode
1、str:常用的字符集如:gb2312、gb18030/gbk、utf-8、ascii,這些都是字符的二進制(字節)編碼形式
2、unicode:Python 認為 16 位的 unicode 才是字符的唯一內碼
3、encode:從unicode轉換成二進制編碼,即從unicode轉換成str
4、decode:從二進制編碼轉換成unicode
5、在進行同時包含str與unicode的運算時,Python一律都把str轉換成unicode再運算,當然,運算結果也都是unicode。
6、建議在

python代碼

            
              # -*- coding: utf-8 -*-  

#第一行表明python代碼由utf-8編碼

#-----------------------------------------1----------------------------------------
s='我是誰'  #這是個str的字符串,是utf-8字符串
u=u'我是誰' #這是個unicode字符串

s.decode('utf-8') #從str轉成unicode,即用utf-8解碼字符串s
u.encode('utf-8') #從unicode轉成str,即將unicode碼按utf-8編碼成字符串

s.decode('ascii') #錯誤,用ascii解碼utf-8字符串
s.decode('gbk')   #不出錯,但出現亂碼

u.encode('ascii') #錯誤,中文無法用ascii字符集編碼
u.encode('gbk')   #不出錯,但會出現亂碼

#-----------------------------------------2------------------------------------------
#注意一:在進行同時包含str與unicode的運算時,Python一律都把str轉換成unicode再運算,當然,運算結果也都是unicode。

"中文:%s" % s  # 正確,所有的字符串都是 str, 不需要 decode  
"中文:%s" % u  # 失敗,相當于運行:"中文:%s".decode('ascii') % u ,為什么是ascii,因為sys.getdefaultencoding()默認是ascii

import sys
reload(sys)                      # reload 才能調用 setdefaultencoding 方法  
sys.setdefaultencoding('utf-8')  # 設置 'utf-8',這個是全局的,對當前程序運行的所有python代碼都起作用

#若 linux的$LANG為zh_CN.GBK,則print s輸出到終端時會出現亂碼,但print u輸出到終端不會亂碼,會將u按$LANG的字符集編碼
            
          

?

參考:https://in355hz.iteye.com/blog/1860787


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 长岭县| 那坡县| 华安县| 石门县| 乌鲁木齐县| 安溪县| 鲁甸县| 冷水江市| 连山| 田林县| 睢宁县| 阿城市| 东乡族自治县| 若羌县| 开江县| 平原县| 左权县| 深泽县| 沙田区| 襄汾县| 安泽县| 汨罗市| 商都县| 白山市| 偏关县| 峨山| 马山县| 泸定县| 镇安县| 石楼县| 临澧县| 泽库县| 简阳市| 大姚县| 磐安县| 太白县| 余干县| 城步| 寿光市| 哈密市| 渝中区|