Python 2.7でクリーンなチェスボードを印刷しようとしています。これはsuchなどのユニークな文字を使用しています。Pythonでlikeのような文字を印刷するには
文字列("g".replace(g, ♟)
)の値を置き換えようとしましたが、'\xe2\x80\xa6'
に変更されました。文字をオンラインのASCIIコンバーターに入れた場合、 "226 153 159"を返します。
Python 2.7でクリーンなチェスボードを印刷しようとしています。これはsuchなどのユニークな文字を使用しています。Pythonでlikeのような文字を印刷するには
文字列("g".replace(g, ♟)
)の値を置き換えようとしましたが、'\xe2\x80\xa6'
に変更されました。文字をオンラインのASCIIコンバーターに入れた場合、 "226 153 159"を返します。
♟
はユニコード文字です。 Python 2では、str
はASCII文字列またはバイナリデータを保持し、unicode
はUnicode文字列を保持します。 "♟"
を実行すると、ユニコード文字列のバイナリコード化バージョンが取得されます。そのエンコーディングは、あなたが入力したエディタ/コンソールに依存します。文字列をエンコードするためにUTF-8を使用するのが一般的ですが、WindowsエディタはリトルエンディアンのUTF-16文字列を好むかもしれません。
いずれにしても、可能な限り文字列をユニコードとして書きたいと思っています。 str
とunicode
の間でいくつかのミックス&マッチングを行うことができますが、ASCIIコードセット以外のものは最初からユニコードであることを確認してください。
Pythonは、ファイルの先頭にエンコードヒントをとることができます。あなたがUTF-8エディタを使用していると仮定すると、
[email protected]/usr/bin/env python
# -*- coding: utf-8 -*-
chess_piece = u"♟"
print u"g".replace(u"g", chess_piece)
なぜasciiコンバータに入れますか? –
私はそれが本当に何を出力するかを見てみたかった。役に立つかもしれないが、そうは思わない。 – DSchana
これはASCII文字ではなく、UTF-8文字です。 – Natecat