【发布时间】:2011-01-10 08:50:00
【问题描述】:
我有一个 unicode 字符串,我需要返回前 N 个字符。 我正在这样做:
result = unistring[:5]
但当然是 unicode 字符串的长度!= 字符的长度。 有任何想法吗?唯一的解决方案是使用 re?
编辑:更多信息
unistring = "Μεταλλικα" #Metallica written in Greek letters
result = unistring[:1]
返回-> ?
我认为 unicode 字符串是两个字节(char),这就是发生这种情况的原因。如果我这样做:
result = unistring[:2]
我明白了
M
这是正确的, 那么,我应该总是 slice*2 还是应该转换成什么?
【问题讨论】:
-
你确定你有一个实际的 unicode 字符串,而不是(比如说)一个带有 UTF-8 数据的字节串吗?如果是这样,你如何定义“性格”? (unicode 字符串是代码点(在 UCS-4 构建中)或代码单元的字符串。)
-
请不要。这在这里并不适用。
-
其实是这样。 OP 显然对 unicode 和 UTF-8 感到困惑。
标签: python unicode python-2.x