2

Python アプリケーションで特殊文字を使用する必要があります。例: ƃ 次のような情報があります。

U+0183 LATIN SMALL LETTER B WITH TOPBAR

General Character Properties

In Unicode since: 1.1
Unicode category: Letter, Lowercase

Various Useful Representations

UTF-8: 0xC6 0x83
UTF-16: 0x0183

C octal escaped UTF-8: \306\203
XML decimal entity: &# 387;

しかし、シンボルを python-script に挿入すると、エラーが発生します。

非 ASCII 文字 '\xc8' ... アプリケーションの文字列でどのように使用できますか?

4

6 に答える 6

3

答えはすべて正しいですが、私はより完全な治療法を提供したいと思いました:

スクリプト リテラルで非 ASCII 文字を表す最も簡単な方法は、次のように u プレフィックスと u または U エスケープを使用することです。

print u"Look \u0411\u043e\u0440\u0438\u0441, a G-clef: \U0001d11e"

これは次のことを示しています。

  1. u プレフィックスを使用して、文字列がunicodeオブジェクトであることを確認します
  2. 基本的な多言語面 (U+FFFD 以下) の文字に u エスケープを使用する
  3. 他のプレーンの文字に U エスケープを使用する (U+10000 以上)
  4. Ƃ (U+0182 LATIN CAPITAL LETTER B WITH TOPBAR) と Б (U+0411 CYRILLIC CAPTIAL LETTER BE) は、多くの紛らわしいほど類似した Unicode コードポイントの 1 つの例にすぎません。

どこでも機能する Python のデフォルトのスクリプト エンコーディングは ASCII です。そのため、非 ASCII 文字のリテラルをエンコードするには、上記のエスケープを使用する必要があります。次のような行を使用して、スクリプトのエンコーディングを Python インタープリターに通知できます。

# -*- coding: utf-8 -*-

これは、スクリプトのエンコーディングのみを変更します。しかし、次のように書くことができます。

print u"Look Борис, a G-clef: "

unicodeオブジェクトではなく、オブジェクトを取得するには u プレフィックスを使用する必要があることに注意してくださいstr

最後に、 ...に使用されるデフォルトのエンコーディングを変更することstr可能ですが、これはグローバルな変更であり、他の Python コードではうまく動作しない可能性があるため、お勧めしません。

于 2009-07-14T20:52:26.247 に答える
0

pythonでは、そうあるべきです

u"\u0183"

String の先頭の u は、String に Unicode 文字が含まれていることを示します。

参考までにこちらをご覧ください:

http://www.fileformat.info/info/unicode/char/0183/index.htm http://docs.python.org/tutorial/introduction.html#unicode-strings

于 2009-07-14T20:27:15.843 に答える