繁体   English   中英

python的字符串是unicode字符

[英]python's string is unicode characters

python 3字符串中的Unicode characters是什么意思?

从Python 3.0开始,该语言的str类型包含Unicode字符,这意味着使用“unicode rocks!”,“unicode rocks!”创建的任何字符串,或者三重引用的字符串语法都存储为Unicode

来自python doc。

对于字符串abc ,Python是否在内存中保存[61,62,63]? (因为a是U + 0061)

unicode字符是否意味着unicode代码点?

unicode字符是否意味着unicode代码点?

是的,不是。 这取决于python的版本,以及它是如何构建的。

对于2.2到3.2版本,python支持窄和宽的unicode构建(参见PEP-261 )。 在狭窄的版本中,unicode范围仅限于BMP

Python 3.2.6 (default, Feb 21 2016, 12:42:00)
[GCC 5.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> sys.maxunicode
65535

因此,此范围之外的字符必须表示为代理项对

>>> s = '😬'
>>> ord(s)
128556
>>> len(s)
2

随着PEP-0393的引入,python3不再支持窄版本,因此一个字符总是等同于一个代码点:

Python 3.5.1 (default, Mar 3 2016, 09:29:07)
[GCC 5.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> sys.maxunicode
1114111
>>> s = '😬'
>>> ord(s)
128556
>>> len(s)
1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM