2016-07-21 8 views
0

twitterからスクリーン名とツイートをtxtファイルにプルするプログラムを作成しています。一部の画面名には、♡のような特殊なUnicode文字が含まれています。私のBashターミナルでは、これらの文字は空のボックスとして表示されます。私のSQLは、この文字を挿入しようとすると失敗し、翻訳できない文字が含まれていることがわかります。 Pythonの特殊文字だけを16進形式に変換する方法はありますか?私も幸せにはちょうど「スクリーンネーム♡」に「screenName0x2661」に変換またはちょうどのようなものに特殊文字に代わる理想的特殊なユニコード文字(♡など)を文字列(0x2661など)の16進リテラルに変換するPython

でこれらの特殊文字を置き換えることになる「スクリーンネームの##のREPLACE」

ありがとう!

+0

トライURLエンコード方法を...? – anishsane

答えて

0

encodeメソッドを使用してこれを実現できます(hereを参照)。ドキュメントから:

もう一つの重要な方法は、Unicode文字列の8ビット列のバージョンを返す.encode([符号化]、[エラー=「厳密」])、 要求されたエンコーディングで をコード。 errorsパラメータはunicode()コンストラクタの パラメータと同じで、 の可能性がさらにあります。 'strict'、 'ignore'、 'replace'のように、 もXMLの文字参照を使用する 'xmlcharrefreplace'を渡すことができます。 次の例では、異なる結果を示しています。

>>> u = unichr(40960) + u'abcd' + unichr(1972) 
>>> u.encode('utf-8') '\xea\x80\x80abcd\xde\xb4' 
>>> u.encode('ascii')      Traceback (most recent call last): 
    ... UnicodeEncodeError: 'ascii' codec can't encode character u'\ua000' in position 0: ordinal not in range(128) 
>>> u.encode('ascii', 'ignore') 'abcd' 
>>> u.encode('ascii', 'replace') '?abcd?' 
>>> u.encode('ascii', 'xmlcharrefreplace') 'ꀀabcd޴' 
+0

私は私の引用符の前にuが不足していました。 'screenName♡'の代わりにu'screenName♡ 'を使用すると、エンコーディングが可能になります。ありがとう! – mday99

関連する問題