0

これは完全な初心者の質問です....

しかし、Python の一部の文字列が次のように表示されるのはなぜですか。

{u'foobar: u'bar}

その他は次のように表示されます。

{foobar: bar}

それらは同等ですか?2つの間でどのように変換しますか?

4

3 に答える 3

3

いいえ、同等ではありません

文字列の先頭にある「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 サイトについて不平を言いたがります。

于 2012-04-03T23:19:52.290 に答える
3

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 文字列 (および文字列を変換またはエンコードする方法) の詳細については、ドキュメントを参照してください。

于 2012-04-03T23:13:07.707 に答える
2

Usingu'string'は、文字列が unicode 型であることを定義します。

>>> type('hi')
<type 'str'>
>>> type(u'hi')
<type 'unicode'>

uncode ドキュメント ページですべてを読むことができます。

于 2012-04-03T23:13:21.703 に答える