所以我有这样的东西:

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

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

最佳答案

这是因为在Python2.x中,用一种奇怪的方式来编写字节字符串。
你想要一个字符串。在Python2.x中,字符串的前缀是"CЕМЬ"

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

如果您是在一个程序(而不是一个交互式shell)中编写的,则需要specify a source code encoding。为此,只需在文件开头添加以下行,其中b'C\xd0\x95\xd0\x9c\xd0\xac'与您的file encoding匹配:
# -*- coding: utf-8 -*-

10-08 02:32