我對Python標準庫(從3.0開始)基於unicode的標準庫的行爲有些困惑。諸如CGI和urllib這樣的模塊會使用unicode字符串,還是會使用新的「字節」類型並僅提供編碼數據?標準庫中的所有內容都將Python字符串視爲unicode嗎?
10
A
回答
11
邏輯上的很多東西像MIME編碼的郵件,網址,XML文檔等,應返回bytes
不是字符串。這可能導致有些驚愕的庫一開始就被確定下來的Python 3,人們發現,他們必須更加意識到bytes
/string
轉換比他們的str
/unicode
的...
6
一位偉大的關於這個問題(和Python一般)的事情是,你可以在解釋器中亂搞! Python 3.0 rc1 is currently available for download。
>>> import urllib.request
>>> fh = urllib.request.urlopen('http://www.python.org/')
>>> print(type(fh.read(100)))
<class 'bytes'>
+0
我同意 - 今天早上我編譯並安裝了rc1,我已經花了太多時間在玩它了!我只是想知道是否有一個標準的規則,什麼是unicode,哪些不是。 – hacama 2008-09-18 10:26:18
1
這裏將有兩步舞。請參閱Python 3000 and You。
第1步是讓3.0下運行。
第二步是重新考慮你的API來,也許,做一些更明智。
最可能的過程是庫將切換到unicode字符串以儘可能保持與他們以前的工作方式的兼容性。
然後,也許有些人會切換到字節更恰當地實現對各種協議的RFC標準。
相關問題
- 1. Unicode字符串爲Unicode字符,Python 3
- 2. 標準Python庫和Unicode
- 3. Python字符串爲Unicode
- 4. 將url編碼的字符串轉換爲python unicode字符串
- 5. Python XML:如何將節點內容視爲字符串?
- 6. Unicode NFC標準化可以增加字符串的長度嗎?
- 7. 庫將python字符串轉換爲有效的HTML標識符?
- 8. Python:將ascii字符串轉換爲unicode字符串
- 9. 字符串的所有字符都屬於一個集合嗎?
- 10. 拆分字符串,unicode,unicode,python中的字符串
- 11. Python - 將數據框中的所有項目都轉換爲字符串
- 12. 將所有內容替換爲第一個字符串出現
- 13. 爲什麼在Python標準庫的某些模塊中有__version__字符串?
- 14. 是否需要所有字符串都是unicode?
- 15. Python標準庫真的是標準嗎?
- 16. 將ostream轉換爲標準字符串
- 17. 將標題更改爲字符串中的所有標題
- 18. python找到一個字符串&前後的所有內容
- 19. 在Unicode中將unicode字符串轉換爲可用的unicode
- 20. python unicode woes - 將cp1252字符串轉換爲unicode
- 21. Python ElementTree xml內容作爲字符串
- 22. Python中,字符串,Unicode字符
- 23. 如何在Python中將unicode字符串轉換爲文字字符串?
- 24. Javascript - 將字符串中的所有數字更改爲下標
- 25. 如何在python中將字符串編寫爲unicode字節?
- 26. Python將字典視爲字符串
- 27. 如何將字符串轉換爲Perl中的unicode字符串
- 28. VB.NET:除正常字母外的所有內容都拆分字符串
- 29. 如何將包含unicode字符的字符串轉換爲unicode?
- 30. 將Unicode字符串轉換爲Python中的ASCII 2.7
也許這個問題不應該由同胞程序員回答,而是由Python開發者(間接最好;這裏瀏覽開發者的討論:http://mail.python.org/pipermail/python-3000/) – tzot 2008-09-18 09:31:42