CPython在内部将unicode字符串存储为utf-16或utf-32,具体取决于编译选项.在utf-16版本的Python字符串切片,迭代中,len
似乎可以处理代码单元,而不是代码点,因此多字节字符的行为很奇怪.
例如,在CPython 2.6上使用sys.maxunicode
= 65535:
>>> char = u'\U0001D49E'
>>> len(char)
2
>>> char[0:1]
u'\uu835'
>>> char[1:2]
u'\udc9e'
Run Code Online (Sandbox Code Playgroud)
根据Python文档,sys.maxunicode
"为Unicode字符提供最大支持代码点的整数".
这是否意味着unicode
无法保证操作超出代码点sys.maxunicode
?如果我想使用BMP之外的字符,我必须使用utf-32构建或编写我自己的便携式unicode
操作吗?
我在如何迭代Python 3中的Unicode字符时遇到了这个问题?
我有一个安装程序,我想从脚本运行.安装程序请求UAC提升但不需要提升,因为我正在安装到用户目录.有没有办法运行安装程序,以便它不会请求UAC提升?
该脚本是用Python编写的,因此我可以通过ctypes访问Windows API.
无法更改安装程序.
我有一个混合使用unicode字符\ u0421,'С'和\ u0043,'C'的数据集.是否有某种unicode比较,认为这两个字符相同?到目前为止,我已经尝试了几种ICU整理,包括俄罗斯的整理.
unicode collation normalization unicode-normalization accent-insensitive
我想从一个Python程序删除文档字符串,但留下断言(和__debug__
切片).我一直在使用-OO标志产生.pyo文件,但根据该文件,消除双方断言和文档字符串.
我正在使用CPython 2.7.
澄清:我正在删除文档字符串作为一种廉价的混淆方法.管理层做出了这个决定,我认为这是否有用是超出了这个问题的范围.
我有一个C头,它定义了一个宏中的函数.我需要从Cython中调用它.有没有办法在Cython中使用宏并让它完全扩展?我已经将参数作为C类型.
我已经尝试过使用cdef,就像我想要的一样,我认为,文档说的是什么.
我想检测用户单击按钮时是否按下ctrl."clicked"信号似乎没有向回调传递足够的信息来解决这个问题.