これは完全な初心者の質問です....
しかし、Python の一部の文字列が次のように表示されるのはなぜですか。
{u'foobar: u'bar}
その他は次のように表示されます。
{foobar: bar}
それらは同等ですか?2つの間でどのように変換しますか?
これは完全な初心者の質問です....
しかし、Python の一部の文字列が次のように表示されるのはなぜですか。
{u'foobar: u'bar}
その他は次のように表示されます。
{foobar: bar}
それらは同等ですか?2つの間でどのように変換しますか?
いいえ、同等ではありません
文字列の先頭にある「u」は、Unicode であることを意味します。Unicode は、英語以外の言語に対応する拡張文字セットとして設計されました。この面白くて非技術的な Unicode の歴史を読むことができます。
http://www.reigndesign.com/blog/love-hotels-and-unicode/
Lattyware が言及しているように、Python 3.x では、すべての文字列が Unicode です。
特に Web で Python 2.x を使用している場合は、プログラムが Unicode を適切に処理することを確認する価値があります。多くの人が、Unicode をサポートしていない Web サイトについて不平を言いたがります。
u
プレフィックスは、文字列が Unicode であることを意味します。
http://docs.python.org/reference/lexical_analysis.html
セクション 2.4.1 を参照してください。
「u」または「U」のプレフィックスは、文字列を Unicode 文字列にします。Unicode 文字列は、Unicode Consortium および ISO 10646 によって定義された Unicode 文字セットを使用します。以下で説明するいくつかの追加のエスケープ シーケンスを Unicode 文字列で使用できます。Python 2 では、'b' または 'B' のプレフィックスは無視されます。これは、リテラルが Python 3 でバイト リテラルになる必要があることを示します (たとえば、コードが 2to3 で自動的に変換される場合)。「u」または「b」プレフィックスの後に「r」プレフィックスが続く場合があります。
ご覧のとおり、Python はさまざまなエンコーディングの文字列を自動的に比較できます。
>>> a = u'Hello'
>>> b = 'Hello'
>>> c = ur'Hello'
>>> a == b
True
>>> b == c
True
Python の Unicode 文字列 (および文字列を変換またはエンコードする方法) の詳細については、ドキュメントを参照してください。
Usingu'string'
は、文字列が unicode 型であることを定義します。
>>> type('hi')
<type 'str'>
>>> type(u'hi')
<type 'unicode'>
uncode ドキュメント ページですべてを読むことができます。