だから私はこのようなものを持っています:
x = "CЕМЬ"
x[:len(x)-1]
これは、文字列から最後の文字を削除することです。しかし、それは機能せず、エラーが発生します。Unicodeだからだと思いました。では、ansi 以外の文字列に対してこの単純な書式設定を行うにはどうすればよいでしょうか。
だから私はこのようなものを持っています:
x = "CЕМЬ"
x[:len(x)-1]
これは、文字列から最後の文字を削除することです。しかし、それは機能せず、エラーが発生します。Unicodeだからだと思いました。では、ansi 以外の文字列に対してこの単純な書式設定を行うにはどうすればよいでしょうか。
これは、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 -*-
utf-8
エンコーディングでファイルを保存します。
# -*- coding: utf-8 -*-
x = u'CЕМЬ'
print x[:-1] #prints CЕМ
x = u'some string'
x2 = x[:-1]