Python中byte字符串轉(zhuǎn)string的實(shí)現(xiàn)
一、概述
字符串是編程中最常用的一種數(shù)據(jù)類型。但是,在編程中,我們經(jīng)常會(huì)碰到一些二進(jìn)制數(shù)據(jù),比如圖片、音頻、壓縮文件等。這些數(shù)據(jù)以字節(jié)的形式存在,如果直接以字符串的形式進(jìn)行存儲(chǔ)、傳輸或處理,會(huì)產(chǎn)生很多問題。
byte字符串就是為了解決這些問題而出現(xiàn)的,它將二進(jìn)制數(shù)據(jù)轉(zhuǎn)換為了可讀的字符串形式,方便了程序的處理。
二、轉(zhuǎn)換方式
將byte字符串轉(zhuǎn)換為string有兩種方式,一種是通過編碼的方式進(jìn)行轉(zhuǎn)換,另一種是通過Unicode方式進(jìn)行轉(zhuǎn)換。
1. 編碼方式
編碼方式是一種常用的方式,其本質(zhì)是將byte數(shù)組按照編碼格式進(jìn)行解碼,生成字符串。
byte[] bytes = new byte[]{97, 98, 99}; String str = new String(bytes, "UTF-8"); System.out.println(str); //輸出結(jié)果為:abc
上述代碼中,我們首先定義一個(gè)byte數(shù)組byte[] bytes,其中包含了3個(gè)小寫字母(a、b、c)的ASCII碼。接著,我們將其轉(zhuǎn)換為字符串形式,因?yàn)槲覀冎肋@些ASCII碼對(duì)應(yīng)的字符就是“abc”,所以通過UTF-8編碼方式進(jìn)行解碼后,輸出結(jié)果為“abc”。
2. Unicode方式
Unicode方式是將byte數(shù)組當(dāng)做16進(jìn)制Unicode碼進(jìn)行解碼,生成字符串。
byte[] bytes = new byte[]{97, 98, 99}; String str = new String(bytes, StandardCharsets.UTF_16BE); System.out.println(str); //輸出結(jié)果為:???
上述代碼中,我們依然使用了byte數(shù)組byte[] bytes,并且還是由3個(gè)小寫字母(a、b、c)的ASCII碼組成。在此基礎(chǔ)上,我們通過StandardCharsets.UTF_16BE編碼方式對(duì)byte數(shù)組進(jìn)行Unicode解碼,然后輸出結(jié)果為“???”??梢钥吹剑@種方式比編碼方式輸出的結(jié)果更加模糊。
三、實(shí)際應(yīng)用
我們可以通過byte字符串的轉(zhuǎn)換實(shí)現(xiàn)編碼格式的轉(zhuǎn)換,比如將ISO-8859-1的編碼格式轉(zhuǎn)換為UTF-8。
String str = "Hello, world!"; byte[] bytes = str.getBytes("ISO-8859-1"); String utf8Str = new String(bytes, "UTF-8"); System.out.println(utf8Str); //輸出結(jié)果為:Hello, world!
上述代碼中,我們首先定義了一個(gè)字符串str,該字符串使用的是ISO-8859-1的編碼格式。接著,我們將其轉(zhuǎn)換成byte數(shù)組,并通過UTF-8編碼方式將其轉(zhuǎn)換為可讀的字符串形式。
四、代碼實(shí)現(xiàn)
下面是通過編碼方式將byte數(shù)組轉(zhuǎn)換為string的代碼:
public static String byteArrayToString(byte[] bytes, String charsetName) throws UnsupportedEncodingException { return new String(bytes, charsetName); }
我們可以通過調(diào)用上述方法來將byte數(shù)組轉(zhuǎn)換為String。
下面是通過Unicode方式將byte數(shù)組轉(zhuǎn)換為string的代碼:
public static String byteArrayToString(byte[] bytes) { return new String(bytes, StandardCharsets.UTF_16BE); }
我們同樣可以通過調(diào)用上述方法來將byte數(shù)組轉(zhuǎn)換為String。
到此這篇關(guān)于Python中byte字符串轉(zhuǎn)string的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Python byte字符串轉(zhuǎn)string內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python re.findall中正則表達(dá)式(.*?)和參數(shù)re.S使用
本文主要介紹了Python re.findall中正則表達(dá)式(.*?)和參數(shù)re.S使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08Python編程使用Selenium模擬淘寶登錄實(shí)現(xiàn)過程
這篇文章主要介紹了Python編程使用Selenium模擬淘寶登錄的實(shí)現(xiàn)過程示例及解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2021-10-10