<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Python編碼介紹——encode和decode

      在 python 源代碼文件中,如果你有用到非ASCII字符,則需要在文件頭部進(jìn)行字符編碼的聲明,聲明如下:

      1. # code: UTF-8

      因?yàn)閜ython 只檢查 #、coding 和編碼字符串,所以你可能回見到下面的聲明方式,這是有些人為了美觀等原因才這樣寫的:
      1. #-*- coding: UTF-8 -*-


      常見編碼介紹:

      • GB2312編碼:適用于漢字處理、漢字通信等系統(tǒng)之間的信息交換
      • GBK編碼:是漢字編碼標(biāo)準(zhǔn)之一,是在 GB2312-80 標(biāo)準(zhǔn)基礎(chǔ)上的內(nèi)碼擴(kuò)展規(guī)范,使用了雙字節(jié)編碼
      • ASCII編碼:是對(duì)英語字符和二進(jìn)制之間的關(guān)系做的統(tǒng)一規(guī)定
      • Unicode編碼:這是一種世界上所有字符的編碼。當(dāng)然了它沒有規(guī)定的存儲(chǔ)方式。
      • UTF-8編碼:是 Unicode Transformation Format - 8 bit 的縮寫, UTF-8 是 Unicode 的一種實(shí)現(xiàn)方式。它是可變長的編碼方式,可以使用 1~4 個(gè)字節(jié)表示一個(gè)字符,可根據(jù)不同的符號(hào)而變化字節(jié)長度。

       

      編碼轉(zhuǎn)換:

      Python內(nèi)部的字符串一般都是 Unicode編碼。代碼中字符串的默認(rèn)編碼與代碼文件本身的編碼是一致的。所以要做一些編碼轉(zhuǎn)換通常是要以Unicode作為中間編碼進(jìn)行轉(zhuǎn)換的,即先將其他編碼的字符串解碼(decode)成 Unicode,再從 Unicode編碼(encode)成另一種編碼。

      • decode 的作用是將其他編碼的字符串轉(zhuǎn)換成 Unicode 編碼,eg name.decode(“GB2312”),表示將GB2312編碼的字符串name轉(zhuǎn)換成Unicode編碼
      • encode 的作用是將Unicode編碼轉(zhuǎn)換成其他編碼的字符串,eg name.encode(”GB2312“),表示將GB2312編碼的字符串name轉(zhuǎn)換成GB2312編碼

       

      所以在進(jìn)行編碼轉(zhuǎn)換的時(shí)候必須先知道 name 是那種編碼,然后 decode 成 Unicode 編碼,最后載 encode 成需要編碼的編碼。當(dāng)然了,如果 name 已經(jīng)就是 Unicode 編碼了,那么就不需要進(jìn)行 decode 進(jìn)行解碼轉(zhuǎn)換了,直接用 encode 就可以編碼成你所需要的編碼。值得注意的是:對(duì) Unicode 進(jìn)行編碼和對(duì) str 進(jìn)行編碼都是錯(cuò)誤的。

      具體的說就是:如果在UTF-8文件中,則這個(gè)字符串就是 UTF-8編碼的。它的編碼取決于當(dāng)前的文本編碼。當(dāng)然了,GB2312文本的編碼就是GB2312。要在同一個(gè)文本中進(jìn)行兩種編碼的輸出等操作就必須進(jìn)行編碼的轉(zhuǎn)換,先用decode將文本原來的編碼轉(zhuǎn)換成Unicode,再用encode將編碼轉(zhuǎn)換成需要轉(zhuǎn)換成的編碼。

      eg:
      由于內(nèi)置函數(shù) open() 打開文件時(shí),read() 讀取的是 str,讀取后需要使用正確的編碼格式進(jìn)行 decode()。write() 寫入時(shí),如果參數(shù)是 Unicode,則需要使用你希望寫入的編碼進(jìn)行 encode(),如果是其他編碼格式的 str,則需要先用該 str 的編碼進(jìn)行 decode(),轉(zhuǎn)成 Unicode 后再使用寫入的編碼進(jìn)行 encode()。如果直接將 Unicode 作為參數(shù)傳入 write() ,python 將先使用源代碼文件聲明的字符編碼進(jìn)行編碼然后寫入。

      1. # coding: UTF-8
      2.  
      3. fp1 = open('test.txt', 'r')
      4. info1 = fp1.read()
      5. # 已知是 GBK 編碼,解碼成 Unicode
      6. tmp = info1.decode('GBK')
      7.  
      8. fp2 = open('test.txt', 'w')
      9. # 編碼成 UTF-8 編碼的 str
      10. info2 = tmp.encode('UTF-8')
      11. fp2.write(info2)
      12. fp2.close()

      獲取編碼的方式:
      判斷是 s 字符串否為Unicode,如果是返回True,不是返回False :
      1. isinstance(s, unicode)


      下面代碼可以獲取系統(tǒng)默認(rèn)編碼:

      1. #!/usr/bin/env python
      2. #coding=utf-8
      3. import sys
      4. print sys.getdefaultencoding()
      posted @ 2015-03-28 23:49  狂師  閱讀(665)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 国产丝袜在线精品丝袜 | 国产乱老熟女乱老熟女视频| 久久国产精品色av免费看| 息烽县| 九九热在线免费观看视频| 欧美牲交a欧美牲交aⅴ图片| 国产亚洲AV电影院之毛片| 成人精品区| 9久久伊人精品综合| 中文字幕无线码免费人妻| 欧美三级欧美成人高清| 天天做天天爱夜夜爽导航| 中文字幕无码av波多野吉衣| 啪啪av一区二区三区| 国产va免费精品观看精品| 日韩人妻无码一区二区三区99| 亚洲国产天堂久久综合226114| 亚洲精品无码久久一线| 日本熟妇浓毛| 免费又大粗又爽又黄少妇毛片| 国产亚洲精品AA片在线播放天| 久久香蕉国产线看观看怡红院妓院| 国产高清乱码又大又圆| 欧美成人精品三级网站| 久久精品一偷一偷国产| 国产成人无码网站| 色综合人人超人人超级国碰 | 高青县| 亚洲欧洲精品一区二区| 乱女乱妇熟女熟妇综合网| 欧美亚洲综合成人A∨在线| 亚洲精品有码在线观看| 午夜精品一区二区三区免费视频| 日韩精品一区二区av在线| 国产69精品久久久久99尤物 | 久久国产精品-国产精品| 中文字幕亚洲综合第一页| 午夜福利高清在线观看| 成人3D动漫一区二区三区| 久久精品国产色蜜蜜麻豆| 亚洲av在线观看|