4

開発/ローカル マシンで実行され、Appengine へのインストール後に失敗する Python コード:

私のファイルの最初の行:

# -*- coding: utf8 -*-O

コードの後半の行:

s1 = u'Ismerőseid'
logging.info (s1)
s2 = s1 + u':' + s1
logging.info (s2)
logging.info ("%s,%s", s1, s2)

開発中 (localhost):

INFO     2012-12-18 04:01:17,926 AppRun.py:662] Ismerőseid,
INFO     2012-12-18 04:01:17,926 AppRun.py:664] Ismerőseid:Ismerőseid
INFO     2012-12-18 04:01:17,926 AppRun.py:665] Ismerőseid,Ismerőseid. Ó,

インストール/実行後の App Engine :

I 2012-12-21 06:52:07.730 
É, Á, Ö, Ü. Ó,

E 2012-12-21 06:52:07.736

Traceback (most recent call last):
  File "....", line 672, in xxxx
    s3 = s1 + u':' + s1
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 5: ordinal not in range(128)

エンコード/デコード/などのさまざまな組み合わせを試みました.貼り付けられた文字列「Ismerőseid」にもチャーデットがあり、それは私に与えます{'confidence': 0.7402600692642154, 'encoding': 'ISO-8859-2'}

どんな助けでも大歓迎です!

4

1 に答える 1

6

ユニコードを使用するには、Python27コードの先頭に次の3行を配置します。

#!/usr/bin/python
# -*- coding: utf-8 -*-
from __future__ import unicode_literals

# And this code will not give you any problems

s1 = 'É, Á, Ö, Ü. Ó,'
logging.info (s1)
s2 = s1 + ':' + s1
logging.info ("%s,%s", s1, s2)

また、str()を使用しないでください。あなたが本当にする必要がある場合にのみ!

そして、ニック・ジョンソンからのこのブログ投稿を読んでください。これはPython27より前のことです。彼はを使用していなかったため、from __future__ import unicode_literalsPythonでのUnicodeの使用が非常に簡単になりました。

于 2012-12-21T15:47:07.083 に答える