Pythonコマンドラインインタープリター(v3.5 for Windows)を使用して).
やりたいことは、ユーロ(€)記号を含むテキストを出力することコード80h(128 dec)であると理解しています。
#!
# -*- coding: utf-8 -*-
mytext = 'Please pay \x8035.'
print(mytext)
最後の行に落ちる:
UnicodeEncodeError: 'charmap' codec can't encode character '\x80' in position 11: character maps to <undefined>
私はグーグル(エンコードの再設定など)をたくさん行ってきましたが、なぜ印刷コマンドが失敗するのかおおまかな考えを持っています。上記のコードをいじくり回すと、予想どおり、ASCII\x7fまでのコードが正常に機能します。
しかし、€を表示する方法を理解できず、圧倒的で不可解なエンコーディングに関する情報を見つけています。 (私は初心者です!)
誰かが私にいくつかのコードを見せてもらえますかちょうど動作する、それで私はそれを研究してそこから逆に作業することができます。ありがとう!
Python 3.xにユーロ記号を含む文字列を印刷する4つの方法を、あいまいなものから順に示します。
1。直接入力
キーボードを使用して記号を入力するか、別の場所からコピーして貼り付けます。
_mytext = "Please pay €35."
print(mytext)
_
2。 Unicodeグリフ番号を使用
たとえば非常に便利なページ http://www.fileformat.info/info/unicode/ からUnicodeグリフ番号を検索し、そのコードを文字列で使用します。
_mytext = "Please pay \u20ac35."
print(mytext)
_
3。グリフ名を使用
unicodedata
モジュールの lookup()
を使用して、名前でUnicodeグリフにアクセスできます。繰り返し http://www.fileformat.info/info/unicode/ はグリフ名を見つけるのに役立ちます:
_import unicodedata
mytext = "Please pay {}35.".format(unicodedata.lookup("EURO SIGN"))
print(mytext)
_
4。 Windows-1252コードページを使用
_\x80
_バイトコードを本当に使用したい場合は、Windows-1252コードページのユーロ記号を表すため、それを行うことができます。まず、そのバイトコードを含むバイト文字列を作成し、次にそのバイト文字列をデコードして、バイトコードがWindows-1252コードページのユーロ記号エントリに変換されるようにする必要があります。
_mytext = b"Please pay \x8035.".decode("windows-1252")
print(mytext)
_
**You can use Unicode Character Name**
\ N {name}は、ユニコード文字記号を印刷するのに最適な方法です
これはサンプル実行です...
>>> print "Please pay %s"%(u"\N{euro sign}")
Please pay €
>>> print "Please pay %s"%(u"\N{dollar sign}")
Please pay $
>>> print "Please pay %s"%(u"\N{rupee sign}")
Please pay ₨
>>> print "Please pay %s"%(u"\N{pound sign}")
Please pay £
それでおしまい...
あなたはこれを使うことができます:
mytext = 'Please pay \u20ac.'
print(mytext)
... nicode Character 'EURO SIGN' に基づいています。
ただし、スクリプトの文字エンコーディングで文字を表現できる場合は、記述してはならない理由はありません。
mytext = 'Please pay €.'
http://www.python-forum.org/viewtopic.php?f=6&t=13995 から:
これはpython 2、の動作です。Python3はこれを行いません。
Python 2.7:
>>> s = "€"
>>> s
'\xe2\x82\xac'
>>> print s
€
>>> s = u"€"
>>> s
u'\u20ac'
>>> print s
€
>>> print('\xe2\x82\xac'.decode('utf8'))
€
Python 3.4
>>> s = '€'
>>> s
'€'
>>> print(s)
€
>>>
>>> print(repr(s))
'€'
ユーロは80h
文字セットで0x80
(windows-1252
)としてエンコードされ、Pythonに次のように伝える必要があります。
# -*- coding: utf-8 -*-
mytext = b'Please pay \x8035.'.decode('windows-1252')
print(mytext)
他の人が言ったように、正しいエンコーディング(utf-8
)を使用して、実際のユーロ文字をソースコードに直接書き込むか、その表現を使用することもできます。
# -*- coding: utf-8 -*-
mytext = u'Please pay \u20ac35.'
print(mytext)
...または...
# -*- coding: utf-8 -*-
mytext = 'Please pay €35.'
print(mytext)
このコードは、Python 2および3の両方で機能します。
Python 3では、€文字を直接コピーして、UTF-8エンコードされたテキストファイルに直接貼り付けることができます(コードは必要ありません)。
mytext = 'Please pay €.'
print(mytext)