Python 2.7 获得适当长度的表情符号
我注意到,当你在手机短信中输入表情符号时,其中一些符号使用1个字符,而另一些符号使用2个字符。例如,”♊" 取1个字符,但“读取: 一个整数,给出最大Unicode代码点的值,即。Python 2.7 获得适当长度的表情符号,python-2.7,unicode,utf-8,Python 2.7,Unicode,Utf 8,我注意到,当你在手机短信中输入表情符号时,其中一些符号使用1个字符,而另一些符号使用2个字符。例如,”♊" 取1个字符,但“读取: 一个整数,给出最大Unicode代码点的值,即。 1114111(0x10FFFF十六进制格式) 在版本3.3中更改:之前,sys.maxunicode用于 可以是0xFFFF或0x10FFFF,具体取决于配置 选项,该选项指定是否将Unicode字符存储为 UCS-2或UCS-4 以下脚本应适用于Python版本2和3: #编码=utf-8 来自未来导入打印功能
1114111
(0x10FFFF
十六进制格式)
在版本3.3中更改:之前,sys.maxunicode
用于
可以是0xFFFF
或0x10FFFF
,具体取决于配置
选项,该选项指定是否将Unicode字符存储为
UCS-2
或UCS-4
以下脚本应适用于Python版本2和3:
#编码=utf-8
来自未来导入打印功能
导入系统、平台、Unicode数据
打印(platform.python_version(),'maxunicode',十六进制(sys.maxunicode))
tab='\t'
unistr=u'\u264a\U0001f601'####unistr=u'♊ 相关:。尝试像导入Unicode数据这样的操作;unistr=u'♊感谢您的回复这是您建议的结果:\u264a\U0001f601 u'\u264a\U0001f601'21\u264a u'\u264a'所以双子座1\U0001f601 u'\U0001f601'Cn私人使用
,您可以看到它仍然将每个表情符号读为一个字符。我确实发现了堆栈问题,但我仍在尝试使代理项工作。在我的终端上,\U0001f601
被转换为for…
循环中的代理项对,作为♊我在python2.7和python3.5中检查了您的代码,得到了两个字符的相同结果。有趣的是,我们有不同的终端结果。这是因为import sys;打印十六进制(sys.maxunicode)
在mypy-2中返回'0xffff'
,在mypy-3中返回'0x10ffff'
。Python3为len('s)返回1