我有点困惑。在Python中,二进制字符串,字节字符串,unicode字符串和普通旧字符串(str)之间有什么区别?我正在使用Python 2.6。二进制字符串,字节字符串,unicode字符串和普通字符串(str)之间的区别
回答
它取决于您使用的Python版本。
在Python 2.x中,如果您编写'abc'
它的类型为str
,但这意味着一个字节字符串。如果你想要一个Unicode字符串,你必须写u'abc'
。
在Python 3.x中,如果你写'abc'
它仍然有类型str
但现在这意味着这是一个Unicode字符的字符串。如果你想要一个字节字符串,你必须写b'abc'
。不允许写u'abc'
。
| 2.x | 3.x
--------+--------------------------+-----------------------
Bytes | 'abc' <type 'str'> | b'abc' <type 'bytes'>
Unicode | u'abc' <type 'unicode'> | 'abc' <type 'str'>
谢谢你。只是让我理解得很好,基本上,字节字符串和普通字符串之间的区别在于字节字符串不能包含unicode字符? –
@Imran Azad:您可以将字节字符串视为有序的字节列表 - 即0到255之间的整数。 Unicode字符串是Unicode字符(字母,数字,标点符号,小雪人(☃)等)的有序列表。我认为这种混淆来自Python 2.x将字节串视为字符串。这几乎可以工作,除非你开始使用ASCII范围以外的字符时遇到问题。 –
啊我明白了,谢谢。 –
- 1. 字符串插值和字符串串联之间的区别
- 2. 字符串X,Y之间的区别;和字符串X,字符串Y;
- 3. 字符串[]和[字符串]之间的区别
- 4. 声明字符串和分配字符串之间的区别
- 5. 字符串和字符串C之间的区别#
- 6. 空字符串和空字符串之间的区别
- 7. std :: string,字符串val和字符串之间的区别val =“”
- 8. “\(字符串)”和字符串之间的区别?
- 9. 提取字符串,字符串X和字符串之间ÿ
- 10. 在字节之间发送字符串之间的字符串
- 11. 2字符串之间的字符串
- 12. 如何将带有Unicode字符的字符串转换为普通字符串?
- 13. 普通字符串
- 14. Java |二进制字符串到字节
- 15. Unicode字符字符串
- 16. 字符串的字符串,进去串
- 17. 字符串与字节字符串
- 18. ISO-8859-1字符串Unicode字符串
- 19. 添加字符串文字和字符串对象的区别
- 20. 字符串二进制到字符串8位数字在JAVA
- 21. @string和@ +字符串之间的区别?
- 22. 字符串和AttributedString之间的区别
- 23. 十六进制字符串到二进制字符串
- 24. 二进制字符串到十六进制字符串java
- 25. Ruby:十六进制字符串到二进制字符串
- 26. Unicode字符串
- 27. Unicode字符串
- 28. Ruby - 如何将二进制字符串解压缩到普通字符串?
- 29. M2Crypto RSA Unicode字符串编码不同于字节字符串
- 30. 将unicode字符串转换为字节字符串
您应该指定是否使用Python 2或Python 3,因为它会产生巨大的差异。 –
你正在使用哪个Python版本?在Python的上下文中,你在哪里遇到过“二进制字符串”这个词? –
@JohnY我已经更新了这个问题。 –