誰かがこの問題を解決する方法を教えてください。Python。ユニコード+変数とu +定数の違いは?
これは動作します:
nOrd = (ord(u'ط'))
しかし、これは失敗します。
s="ط"
s=unicode(s, 'utf-8')
nOrd = (ord((s)))
私が手にエラーがある:
例外TypeError:ORD()は長さ2の文字が、文字列を期待見つけた
誰かがこの問題を解決する方法を教えてください。Python。ユニコード+変数とu +定数の違いは?
これは動作します:
nOrd = (ord(u'ط'))
しかし、これは失敗します。
s="ط"
s=unicode(s, 'utf-8')
nOrd = (ord((s)))
私が手にエラーがある:
例外TypeError:ORD()は長さ2の文字が、文字列を期待見つけた
あなたの第2あなたは第二の例ではU+200E LEFT-TO-RIGHT MARK文字を持っている
>>> u'ط'
u'\u0637'
>>> u'ط'.encode('utf8')
'\xd8\xb7'
>>> s="ط"
>>> s
'\xe2\x80\x8e\xd8\xb7'
>>> s.decode('utf8')
u'\u200e\u0637'
:210は、単に最初の例と同じテキストではありません。それはと2つの文字になります。
str.lstrip()
またはstr.replace()
を使用して削除できます。最初は唯一のどこにでも文字列でから他の、最初からそれを削除します。
s = s.lstrip(u'\u200e')
# or
s = s.replace(u'\u200e', u'')
どうすれば左から右のマークを削除できますか? –
@BenderRodriguez: 's.lstrip(u '\ u200e')'を使って変換後に削除することができます。 –
'前ord''にそれを与えることにS'の内容は何ですか? 'ord'は一つの文字を期待しています。あなたは明らかに文字列を与えています。 – Carcigenicate
コンテキスト? tweepyストリームからの単語の文字。 –