日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

字符(串)转换ASCII码

發布時間:2023/12/20 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 字符(串)转换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码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。