字符(串)转换ASCII码
?魯迅曾經說
沒有被編碼格式困擾過的程序員
注定留有遺憾
常言道
常在路上跑
?哪能不摔倒
摔倒快起身
躺著睡更好
書歸正傳
躺歸躺
鬧歸鬧
決不能拿寫代碼開玩笑
畢竟我代碼很大?健壯
你忍一下
~~~~~~~~~~~~~~優雅~~~~~~~~~~~~~~
一、ASCII碼
? ? ? ?首先熟悉下,什么叫ASCII碼?想要直接看代碼的小伙伴直接跳過,看第三部分。
? ? ???ASCII ((American Standard Code for Information Interchange): 美國信息交換標準代碼)是基于拉丁字母的一套電腦編碼系統。ASCII第一次以規范標準的類型發表是在1967年,最后一次更新則是在1986年,到目前為止共定義了128個字符。
二、中文編碼
? ? ? ?ASCII碼表示西文字符是用7位的ASCII碼,為了在計算機中存儲,最高位(第八位)默認為0,所以可以表示2的7次方個不同的字符;擴展的ASCII碼,使用的第八位,不在默認為0,所以最多可以表示2的8次方個字符。
? ? ? ?中文卻不大一樣。中文的一個漢字占16位,也就是兩個字節的位置。編碼方式跟ASCII碼類似,但是為了與ASCII碼區別開來,最高位默認為1。這里需要注意的一點是,部分編碼格式,中文占三個字節。因此,如果含有中文,編碼格式錯誤經常會導致亂碼的發生。
? ? ?國標碼是 用于計算機之間或與終端之間信息交換時的漢字代碼(GB2312,GBK,GB18030),?由連續的兩個字節組成,每個字節七位有效,最高位為1。
? ? ? ? 正常漢字的顯示處理也非常復雜:
三、編碼轉換
? ? ? ?字符轉換。字符的轉換很簡單,一般借助ord方法可以直接轉換,轉換的結果就是對應的ASCII碼。中文的編碼格式為Unicode,和UTF、GBK等一樣,他也是一種編碼方式。
? ? ? ?接下來的代碼以Python為例。
字符串轉換。字符串的轉換,就相對復雜一些。在Python3下,內存中默認編碼方式為Unicode。Unicode編碼類似于世界上的英語,是一種通用的編碼方式,他可以表示所有的字符。
? ? ? ? 所以,如果全世界都是用Unicode編碼的話,從此將不再有亂碼問題。但是計算機中最重要的兩種資源:時間和空間。全部使用Unicode編碼,帶來的空間消耗是ASCII編碼的兩倍。
? ? ? ?本著節約的精神,又出現了把Unicode編碼轉化為“可變長編碼”的UTF-8編碼。UTF-8編碼把一個Unicode字符根據不同的數字大小編碼成1-6個字節,常用的英文字母被編碼成1個字節,漢字通常是3個字節,只有很生僻的字符才會被編碼成4-6個字節。如果你要傳輸的文本包含大量英文字符,用UTF-8編碼就能節省空間。
? ? ? ?Python3中的字符串,是unicode,只能encode,所以無論如何打印都不會亂碼,因為可以理解為從內存打印到內存,即內存->內存,unicode->unicode
? ? ? ?str是unicode,當程序執行時,無需加u,str也會被以unicode形式保存新的內存空間中,str可以直接encode成任意編碼格式,s.encode('utf-8'),s.encode('gbk')
? ? ? ?
? ? ? ?所以,當使用不同編碼方式去編碼字符串的時候,可以看到不同編碼方式轉換的結果:
# -*- encoding:utf8 -*- import string ? ? str_test="西安" ? print(str_test) str_gbk = str_test.encode('gbk') print(str_gbk) str_utf8 = str_test.encode('utf8') print(str_utf8) ?編碼格式互轉:
# -*- encoding:utf8 -*- import string ? ? str_test="西安" ? print(str_test) str_gbk = str_test.encode('gbk') print(str_gbk) str_utf8 = str_test.encode('utf8') print(str_utf8) ? str_gbk = str_test.encode('gbk') print(str_gbk.decode('gbk')) str_utf8 = str_test.encode('utf8') print(str_utf8.decode('utf8'))寫在最后,歡迎關注公眾號【頭發頭發等等我】
另外,建了個微信群,除了打廣告,什么都可以聊
?
總結
以上是生活随笔為你收集整理的字符(串)转换ASCII码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: invalid floating poi
- 下一篇: ELF文件格式简介