2

所以我有这样的事情:

x = "CЕМЬ"
x[:len(x)-1]

这是从字符串中删除最后一个字符。但是它不起作用,它给了我一个错误。我想这是因为它是Unicode。那么如何对非 ansi 字符串进行这种简单的格式化。

4

3 回答 3

6

那是因为在 Python 2.x中,字节"CЕМЬ"是一种奇怪的写法。b'C\xd0\x95\xd0\x9c\xd0\xac'

你想要一个字符串。在 Python 2.x 中,字符串以 为前缀u

x = u"CЕМЬ"
x[:-1] # Returns u"CЕМ" (len(x) is implicit for negative values)

如果您在程序中编写此代码(而不是交互式 shell),您将需要指定源代码编码。为此,只需将以下行添加到文件的开头,其中utf-8匹配您的文件编码

# -*- coding: utf-8 -*-
于 2012-08-12T12:01:39.390 回答
1

utf-8使用编码保存文件:

# -*- coding: utf-8 -*-
x = u'CЕМЬ'
print x[:-1]  #prints CЕМ
于 2012-08-12T12:03:49.480 回答
0
x = u'some string'
x2 = x[:-1]
于 2012-08-12T12:01:34.177 回答