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

python 編碼處理

系統 1770 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條評論
主站蜘蛛池模板: 德保县| 托克逊县| 全州县| 商丘市| 建水县| 汽车| 咸阳市| 青海省| 梁河县| 进贤县| 昌黎县| 河池市| 喀喇沁旗| 江口县| 凌源市| 定结县| 吉林市| 汝南县| 贵州省| 连山| 五大连池市| 平南县| 澄城县| 沧州市| 乳山市| 应城市| 大理市| 雷波县| 麦盖提县| 宁晋县| 额济纳旗| 吉水县| 葫芦岛市| 榆林市| 淮滨县| 且末县| 革吉县| 金山区| 蒙自县| 宣城市| 晋城|