web-dev-qa-db-ja.com

print python Unicode文字列としての絵文字

出力しようとしています  スマイリーの代わりに「\ U0001f604」として使用しますが、機能していないようです。

repr()を使用してみましたが、この '\ xf0\x9f\x98\x84'が表示されます。現在、それは私が望んでいたものではないスマイリーとして出力します。 encode( 'unicode_escape')はUnicodeDecodeErrorを返します。

スマイリーは、Pythonのクラスメソッドに文字列として渡されました。すなわち、「私は幸せです 

誰かが助けてくれたら感謝します。

大きな笑顔でごめんなさい。ここではマークダウンが機能しないようです。

16
You Hock Tan

問題の解決策を見つけました。

次のコードを書きました。

#convert to unicode
teststring = unicode(teststring, 'utf-8')

#encode it with string escape
teststring = teststring.encode('unicode_escape')
11
You Hock Tan
>>> print u'\U0001f604'.encode('unicode-escape')
\U0001f604

別の解決策は、短縮名 here を使用し、文字列リテラル\N

print('\N{grinning face with smiling eyes}')
8
ultramarine

追加するだけ

# -*- coding: UTF-8 -*-

コードに追加すると、Unicode文字を印刷できるようになります

6
Re4per

このコードは、絵文字を簡単に印刷する方法を確認するのに役立ちます。

コード

# -*- coding: UTF-8 -*-
import re

# string = 'Anything else that you wish to match, except URLs http://url.org'
string = 'Anything else that you wish to match'
matches = re.search(r'^(((?!http|https).)+)$', string)
if matches:
    print(matches.group(1)+ " is a match ???? ")
else: 
    print('???? Sorry! No matches! Something is not right!')

URLを含む文字列の出力

???? Sorry! No matches! Something is not right!

URLなしの文字列の出力

Anything else that you wish to match is a match ???? 
2
Emma

これがデバッグ目的の場合、%rを形式指定子として使用できます。

>>> print '%r' % u'\U0001f604'
u'\U0001f604'
2
Saish