华南俳烁实业有限公司

python

當前位置:中華考試網(wǎng) >> python >> python教程 >> 文章內容

python3字符編碼是什么?怎么用?

來源:中華考試網(wǎng)  [2020年11月14日]  【

  編碼介紹

  在人類社會,不同國家有不同的標準語法,簡體漢語、繁體漢語、美式英語、英式英語等.....

  但是機器保存數(shù)據(jù)是以一種特殊的方式來保存,讀取的時候也是以同樣的方式來解讀。

  在Python3當中,默認處理中文的方式叫UTF-8!緦Ρ瘸鰝Γ篣TF-8支持中文,Python2默認格式是ASCII,不支持中文】

  同樣的一個中文詞語,例如:"中國",經過UFT-8方法轉存到硬盤中,比如保存成了"110",再通過UFT-8方法讀取,也是顯示"中國";通過另一種方法轉存到硬盤中,"中國"則會保存成"101",然后通過UTF-8讀取,肯定不會顯示成"中國",也許就是一個亂七八糟的亂碼"燙燙燙燙燙燙燙燙燙";

  雖然上面的110、119、燙燙燙是亂填的,下面示例代碼中有具體值,總之一個:想要顯示正常,讀取數(shù)據(jù)時格式,必須和保存數(shù)據(jù)時使用的一致。

  閑扯幾句——Python2 字符串設計上的一些缺陷:

  使用ASCII 碼作為默認編碼方式,對中文處理很不友好。

  把字符串牽強地分為 unicode 和 str 兩種類型,誤導開發(fā)者

  以上提及的兩個問題,Python3都很好的解決了

  首先,Python3 把系統(tǒng)默認編碼設置為 UTF-8

  然后,文本字符和二進制數(shù)據(jù)區(qū)分得更清晰,分別用 str 和 bytes 表示。

  填寫下面表單即可預約申請免費試聽java課程!害怕學不會?助教全程陪讀,隨時解惑!擔心就業(yè)?一地學習,可全國推薦就業(yè)!

預約申請免費聽java課程

  • 地區(qū):
  • 姓名:
  • 手機:

  代碼示例:

  import sys, locale

  s = "小甲"

  print(s)

  print(type(s))

  print(sys.getdefaultencoding())

  print(locale.getdefaultlocale())

  with open("utf1","w",encoding = "utf-8") as f:

  f.write(s)

  with open("gbk1","w",encoding = "gbk") as f:

  f.write(s)

  with open("jis1","w",encoding = "shift-jis") as f:

  f.write(s)

  代碼很簡單,學過Python的人應該都能看懂是啥意思~~

  我們看一下運行結果:

  小甲

  

  utf-8

  ('en_US', 'UTF-8')

  正如大家所想, 就是將“小甲”原樣打印出來, 再把“小甲”存到3個文件中。

  (shift-jis是日文編碼格式)

  這里解釋一下打印出來的兩個“utf-8”是什么意思:

  上面的 utf-8 指:系統(tǒng)默認編碼

  注: 不要把系統(tǒng)以為是操作系統(tǒng),這里可以理解成python3的編譯器本身

  下面的 utf-8 指:本地默認編碼

  注: 這個才是操作系統(tǒng)的編碼。(在Windows運行會變成gbk)

責編:fushihao
  • 會計考試
  • 建筑工程
  • 職業(yè)資格
  • 醫(yī)藥考試
  • 外語考試
  • 學歷考試
新泰市| 四子王旗| 延吉市| 新宁县| 天全县| 逊克县| 临夏市| 湖南省| 山阴县| 隆安县| 文水县| 宜阳县| 宜君县| 黎城县| 句容市| 萍乡市| 滨州市| 中山市| 贵溪市| 信阳市| 宁远县| 叙永县| 宁陵县| 溧水县| 卢龙县| 开阳县| 日土县| 株洲市| 永吉县| 察隅县| 禹城市| 龙井市| 贵德县| 普宁市| 隆德县| 云和县| 吉木乃县| 宁安市| 普陀区| 安丘市| 井冈山市|