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)

これを (インタラクティブなシェルではなく) プログラムで作成する場合は、ソース コードの encoding を指定する必要があります。これを行うには、次の行をファイルの先頭に追加するだけです。場所は、ファイルのエンコード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 に答える