日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

python 字符串前加u r b的意义

發布時間:2025/7/25 123 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 字符串前加u r b的意义 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

摘自:https://www.cnblogs.com/liangmingshen/p/9274021.html

1、字符串前加 u

例:u"我是含有中文字符組成的字符串。"

作用:

后面字符串以 Unicode 格式 進行編碼,一般用在中文字符串前面,防止因為源碼儲存格式問題,導致再次使用時出現亂碼。

?

2、字符串前加 r

例:r"\n\n\n\n”  # 表示一個普通生字符串 \n\n\n\n,而不表示換行了。

作用:

去掉反斜杠的轉移機制。

(特殊字符:即那些,反斜杠加上對應字母,表示對應的特殊含義的,比如最常見的”\n”表示換行,”\t”表示Tab等。 )

應用:

常用于正則表達式,對應著re模塊。

?

3、字符串前加 b

例:?response = b'<h1>Hello World!</h1>'? ? ?#?b' ' 表示這是一個 bytes 對象

作用:

b" "前綴表示:后面字符串是bytes 類型。

用處:

網絡編程中,服務器和瀏覽器只認bytes 類型數據。

如:send 函數的參數和 recv 函數的返回值都是 bytes 類型

附:

在 Python3 中,bytes 和 str 的互相轉換方式是
str.encode('utf-8')
bytes.decode('utf-8')

?


?

字符串對象給人看的

字節對象是給計算機看的

?

字符對象-->編碼-->字節對象-->解碼-->字符對象

?

?

acsii編碼,只針對英文,一個Bytes代表一個字符

gb2312編碼,支持中文,2Bytes代表一個字符

unicode編碼,世界上的所有字符,2·4Bytes代表一個字符

?utf-8是unicode的實現方式之一,對英文字符只用1Bytes表示,對中文字符用3Bytes

?


?摘自:https://blog.csdn.net/hezh1994/article/details/78899683

?

以漢字“漢”為例,它的 Unicode 碼點是 0x6c49,對應的二進制數是 110110001001001,二進制數有 15 位,這也就說明了它至少需要 2 個字節來表示。這就導致了一些問題,計算機怎么知道你這個 2 個字節表示的是一個字符,而不是分別表示兩個字符呢?這里我們可能會想到,那就取個最大的,假如Unicode 中最大的字符用 4 字節就可以表示了,那么我們就將所有的字符都用 4 個字節來表示,不夠的就往前面補 0。這樣確實可以解決編碼問題,但是卻造成了空間的極大浪費,如果是一個英文文檔,那文件大小就大出了 3 倍,這顯然是無法接受的。

UTF-8 是一個非常驚艷的編碼方式,漂亮的實現了對 ASCII 碼的向后兼容,以保證 Unicode 可以被大眾接受。

UTF-8 是目前互聯網上使用最廣泛的一種 Unicode 編碼方式,它的最大特點就是可變長。它可以使用 1 - 4 個字節表示一個字符,根據字符的不同變換長度。編碼規則如下:

對于單個字節的字符,第一位設為 0,后面的 7 位對應這個字符的 Unicode 碼點。因此,對于英文中的 0 - 127 號字符,與 ASCII 碼完全相同。這意味著 ASCII 碼那個年代的文檔用 UTF-8 編碼打開完全沒有問題。

對于需要使用 N 個字節來表示的字符(N > 1),第一個字節的前 N 位都設為 1,第 N + 1 位設為0,剩余的 N - 1 個字節的前兩位都設位 10,剩下的二進制位則使用這個字符的 Unicode 碼點來填充。

編碼規則如下:

Unicode 十六進制碼點范圍 UTF-8 二進制
0000 0000 - 0000 007F 0xxxxxxx
0000 0080 - 0000 07FF 110xxxxx 10xxxxxx
0000 0800 - 0000 FFFF 1110xxxx 10xxxxxx 10xxxxxx
0001 0000 - 0010 FFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

漢”的 Unicode 碼點是 0x6c49(110 1100 0100 1001),通過上面的對照表可以發現,0x0000 6c49 位于第三行的范圍,那么得出其格式為 1110xxxx 10xxxxxx 10xxxxxx。接著,從“漢”的二進制數最后一位開始,從后向前依次填充對應格式中的 x,多出的 x 用 0 補上。這樣,就得到了“漢”的 UTF-8 編碼為 11100110 10110001 10001001,轉換成十六進制就是 0xE6 0xB7 0x89。

解碼的過程也十分簡單:如果一個字節的第一位是 0 ,則說明這個字節對應一個字符;如果一個字節的第一位1,那么連續有多少個 1,就表示該字符占用多少個字節。

轉載于:https://www.cnblogs.com/blogzyq/p/11068728.html

總結

以上是生活随笔為你收集整理的python 字符串前加u r b的意义的全部內容,希望文章能夠幫你解決所遇到的問題。

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