我对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