2017-02-23 8 views
2

私はこの質問を投稿したくはありませんでしたが、ほぼすべてのことを試しましたが、何も動作していないようです。 Pythonで2.7整数表現から単一のUnicode文字を取得する方法は?

ord(unicode('₹', "utf-8")) 

これは、出力として8377を生成します。 '₹'8377から入手するにはどうすればよいですか?

unichr(8377)およびchr(8377)は、例外をスローすると機能しません。ordinal not in range(128)例外です。 他にもやってみましたが、間違った方向に向いていると思います。 documentationによると

+0

デフォルトエンコーディングが 'ascii'に設定されている場合は、次のようにすることができます: 'print unichr(8377).encode( 'utf-8')' –

+0

どの端末を使用していますか? –

+0

pycharmのpydevconsole。 'print unichr(8377)'はうまくいきますが、 'unichr(8377)'を実行すると出力として '₹'を与えません。その 'u '\ u20b9'' –

答えて

3

問題

>>> 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お手伝いがあります。

+0

"unichr(8377)'と 'chr(8377)'はうまくいきません - そして、 'import unicodedata'の後ではまだ動作しません。 – TigerhawkT3

+0

'chr(8377)'がPython 2で動作しないことが予想されます。少なくとも、unichrはPython 2.7で試したすべてのシステム(Win、Linux、Mac OS)で動作します。どのバージョンをどのシステムで使用していますか? –

+0

私は答えを更新しました。 –

関連する問題