目錄
▍將 utf-8 字串轉換為 bytes 格式,並計算 bytes 長度
s = 'test123字串' #包含中文字的字串 sb = s.encode('utf-8') #b'test123\xe5\xad\x97\xe4\xb8\xb2' len(sb) #13
使用 encode()
函數可將字串轉換為 bytes 格式,若將 bytes 印出來可以看到字串最前面是以 b''
開頭顯示表示此為 bytes array。其中可見原本標準的 ASCII 字元能然維持一個 byte 長度,而且直接顯示字元。如果是 Unicode 文字則是用 \x 16進位的方式表示,且以中文字為例在 UTF-8 編碼下是 3 個 bytes 長度。例如:”串”的 Unicode 編碼為 \xe4\xb8\xb2
。
若要取得字串的 bytes 總長度,在轉換成 bytes 格式之後可以直接使用 len()
函數取得長度。
Reference
- How can I determine the byte length of a utf-8 encoded string in Python? | stack overflow
- Character count of Unicode string | stack overflow
Copyright announcement:
the featured image: Photo by Kristian Strand on Unsplash