2

私はPython 2.5でGoogleアプリエンジンを使用しています。私のアプリケーションは多言語を処理する必要があるため、utf-8 を処理する必要があります。

私はたくさんのグーグルをやったが、欲しいものを手に入れられなかった。

1.の使い方は# -*- coding: utf-8 -*-

2.違いは何ですか

s=u'Witaj świecie'
s='Witaj świecie'

「Witaj świecie」は utf-8 文字列です。

3. .py ファイルを 'utf-8' に保存する場合、uすべての文字列の前にまだ必要ですか?

4

1 に答える 1

6

u'blah'それを別の種類の文字列 ( typeunicodeではなく type str) に変換します - 一連の Unicode コードポイントになります。それがなければ、それはバイトのシーケンスです。ディスクまたはネットワーク ストリームに書き込むことができるのはバイトのみですが、通常は Unicode で作業する必要があります (ただし、Python や一部のライブラリが一部の変換を行います)。エンコーディング (utf-8) は、これらは。したがって、はい、uすべてのリテラルの前に使用する必要があります。これにより、作業がはるかに簡単になります。より良い説明については、Programatic Unicodeを参照してください。

コーディング行は、Python がファイルを理解できるように、ファイルのエンコーディングを Python に伝えます。繰り返しますが、ディスクから読み取るとバイトが返されますが、Python は文字を見たいと思っています。Py2 では、コードのデフォルトのエンコーディングは ASCII であるため、コーディング行を使用するśと、最初に .py ファイルに直接などを配置できます。それ以外は、コードの動作は変わりません。

于 2012-05-26T07:41:14.870 に答える