問題
:
>>> unichr(8377)
u'\u20b9'
これは、任意のシステム上の任意のpython 2.7で動作するはずです。
これは、あなたが尋ねたこととまったく同じです。整数表現から単一のユニコード文字を返します。ただし、このユニコード文字は₹
と表示されません。代わりに、reprバージョンが返されます。これはASCII文字で表示できます。
端末によっては、print
が正しく文字を表示するか:
Python 2.7.6 (default, Oct 26 2016, 20:30:19)
[GCC 4.8.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> unichr(8377)
u'\u20b9'
>>> print unichr(8377)
₹
またはエラー(Windows上でPowerShellを)投げる:
PS C:\Windows\System32\WindowsPowerShell\v1.0> python
Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:42:59) [MSC v.1500 32 bit (
Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> print unichr(8377)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Program Files (x86)\Python2.7\lib\encodings\cp850.py", line 12, in en
code
return codecs.charmap_encode(input,errors,encoding_map)
UnicodeEncodeError: 'charmap' codec can't encode character u'\u20b9' in position
0: character maps to <undefined>
>>>
を考えられる解決策
お使いの端末のニーズユニコード文字を受け入れる。
このanswer
はあなたを助けるかもしれない:
import locale
print unichr(8377).encode(locale.getdefaultlocale()[1], 'replace')
エンコーディングによっては、文字が正しくまたは?
として表示されることがあります。
この文字の置換は"tofu"または"mojibake"と呼ばれ、Pythonの問題ではありません。これは、基礎となる端末(Powershellなど)に関連しています。
Thosethreadsお手伝いがあります。
デフォルトエンコーディングが 'ascii'に設定されている場合は、次のようにすることができます: 'print unichr(8377).encode( 'utf-8')' –
どの端末を使用していますか? –
pycharmのpydevconsole。 'print unichr(8377)'はうまくいきますが、 'unichr(8377)'を実行すると出力として '₹'を与えません。その 'u '\ u20b9'' –