【发布时间】:2015-06-11 08:37:45
【问题描述】:
已经有很多帮助,但我仍然很困惑。
我有一个这样的 unicode 字符串:
title = u'????test'
title_length = len(title) #5
但是!我需要 len(title) 为 6。客户希望它为 6,因为他们的计数方式似乎与我在后端的计算方式不同。
作为一种解决方法,我编写了这个小助手,但我确信它可以改进(对编码有足够的了解),或者它甚至可能是错误的。
title_length = len(title) + repr(title).count('\\U') #6
1.有没有更好的方法让长度为 6? :-)
我假设我(Python)正在计算 unicode 字符的数量,即 5。客户端正在计算字节数?
2。对于其他需要 4 个字节的 unicode 字符,我的逻辑会中断吗?
运行 Python 2.7 ucs4。
【问题讨论】:
-
客户端统计 UTF-16 代理对。
-
当我尝试运行这两行时,它显示的长度为 6。
-
@ssundarraj:看我的回答;您正在运行 Python 2 UCS2 构建。使用 Python 3.3 或更高版本,或者自己构建 UCS4。