字符串是個相當簡單的概念:一個字符串是一個字符序列。問題出在”字符”的定義上。
在2015 年,”字符”的最佳定義是Unicode字符。因此,從Python 3 的str對象中獲取 的元素是Unicode字符
Unicode 標準把字符的標識和具體的字節表述進行了如下的明確區分。
字符的標識,即碼位,是0~1 114 111的數字(十進制),在Unicode標準中以4~6個十六進制數字表示,而且加前綴U+。例如,字母A的碼位是U+0041,歐元符號的碼位是U+20AC,高音譜號的碼位是U+1D11E. 在Unicode 6.3標準中,約10% 的有效碼位有對應的字符。
python utf-8,字符的具體表述取決于所用的編碼。編碼是在碼位和字節序列之間轉換時使用的算法。在UTF-8編碼中,A(U+0041)的碼位編碼成單個字節\x41,而在UTF-16LE編碼中編碼成兩個字節\x41\x00。再舉個例子,歐元符號(U+20AC)在UTF-8編碼中是三個字節——\xe2\x82\xac,而在UTF-16LE中編碼成兩個字節:\xac\x20.
把碼位轉換成字節序列的過程是編碼,使用encode;把字節序列轉換成碼位的過程是解碼,使用decode.
非英語用戶常常會搞反所謂的編碼解碼,可以這樣理解: 把Unicode字符串想成“人類可讀”的文本.那么,
把字節序列變成人類可讀的文本字符串就是解碼
而把字符串變成用于存儲或傳輸的字節序列就是編碼
python處理文本文件、
所以,我們在做爬蟲的時候,遇到亂碼的情況,可以先去看看編碼格式是否正確!
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态