のように:
u'Hello'
私の推測では、「Unicode」を示していると思いますが、正しいですか?
もしそうなら、いつから利用できるのですか?
そうです、.1.3。Unicode文字列を参照してください。
これはPython 2.0以降の構文です。
デフォルトの文字列タイプはUnicodeであるため、Python 3はそれらを冗長にしました。バージョン3.0から3.2はそれらを削除しましたが、2から3への移行を支援するPython 2との互換性のために .3+で再追加 でした。
u'Some String'
のuは、文字列がUnicode文字列であることを意味します。
Q:私はひどく、ひどく急いでいるので、Google検索からここに着きました。私はこのデータをファイルに書き込もうとしていますが、エラーが発生しています、そして今度は最も単純で、おそらく欠陥のある、最も簡単な解決策が必要です。
A:ジョエルのnicodeと文字セットについて絶対に、積極的に知っておくべき絶対的な最小値(言い訳はありません!)文字セットに関するエッセイ。
Q:タイムコードpls
罰金。 str('Some String')
または'Some String'.encode('ascii', 'ignore')
を試してください。しかし、あなたは本当に nicode文字列の変換 と this の文字エンコーディングの入門書と議論のいくつかを読むべきです。
私の推測では、「Unicode」を示していると思いますが、正しいですか?
はい。
もしそうなら、いつから利用できるのですか?
Python2.x。
Python 3.xでは、文字列はデフォルトでUnicodeを使用するため、u
プレフィックスは不要です。 注: Python 3.0-3.2では、uは構文エラーです。 Python 3.3+では、2/3互換のアプリを簡単に作成できるようにすることも合法です。
ユニコードです。
str()
の間に変数を置くだけで、問題なく動作します。
ただし、次のような2つのリストがある場合:
a = ['co32','co36']
b = [u'co32',u'co36']
set(a)==set(b)
をチェックするとFalseになりますが、次のようにすると:
b = str(b)
set(a)==set(b)
これで、結果はTrueになります。
以下が役立つはずです。
http://docs.python.org/library/functions.html#unicode
http://www.amk.ca/python/howto/unicode (Unicodeの原則に既に精通している場合は、「PythonのUnicodeサポート」にスキップしてください)
人間向けの文字列はすべてu ""を使用する必要があります。
Python文字列を処理する場合、次の考え方が非常に役立つことがわかりました。All Pythonマニフェスト文字列はu""
構文を使用する必要があります。 ""
構文は、バイト配列専用です。
バッシングが始まる前に、説明させてください。ほとんどのPythonプログラムは、文字列に""
を使用することから始めます。しかし、その後、彼らはインターネットからドキュメントをサポートする必要があるので、"".decode
の使用を開始し、突然、あれこれのデコードについて例外が発生します。これはすべて、""
を文字列に使用するためです。この場合、Unicodeはウイルスのように振る舞い、大混乱を引き起こします。
ただし、私のルールに従えば、この感染はありません(すでに感染しているため)。
requests
の出力にfunny-char-syndromeがあったため、ここに来ました。 response.text
で適切にデコードされた文字列が得られると思いましたが、出力ではドイツ語のウムラウトがあったはずの面白い二重文字が見つかりました。
response.encoding
は何とか空だったため、応答はコンテンツを適切にデコードする方法を知らず、単にASCIIとして処理しました(推測)。
私の解決策は、「response.content」で生のバイトを取得し、手動でdecode('utf_8')
を適用することでした。結果はschöneUmlaute。
正しくデコードされた
毛皮
vs.不適切にデコードされた
より