1

これは、文字エンコーディングに関する教育的な質問です (趣味のコーダーはこちら) - しかし、私はこの特定の問題に遭遇しました:

1)Python 3でばかげたプログラムを書きました。エディタでは常にUTF-8(ここではドイツ語キーボード)を使用しています。

2) 私の「作品」を興味のある家族と共有するために... コードを非公開の Pastebin.com に貼り付けました (手順: (生の) ファイルをテキスト ファイルにコピー/貼り付けし、ファイル拡張子を .py に変更します)。

ここで問題が始まります:

3) これらの指示に従っても、プログラムを実行することはできません。

4) うまくいかない理由はわかりませんが、文字エンコーディングが ANSI になったので、これが問題であることはわかっています。コードエディタでエンコーディングを UTF-8 に戻すと、問題が解決します。

質問は次のとおりです。

a) なぜ ANSI に変わるのですか?

b) ANSI でとにかく動作しないのはなぜですか (コード全体が同じように見えるため)

c) UTF-8 エンコーディングを保存する方法は? つまり、私の家族はエンコーディングを変更する方法を知りません...(私は知っています...実行可能ファイルを送るだけです。しかし、私が言ったように...教育的です)

編集: 明確化された python-3.x バージョン

4

1 に答える 1

2

テキストをエディターにコピーして貼り付け、保存を押すと、そこから問題が始まります。保存するときは、エンコーディングを指定するか、「ANSI」などのデフォルトに翻弄される必要があります。テキスト ファイルは、何らかのエンコーディングを使用しないと保存できません。

ファイルで宣言しているため、機能しない可能性があり# -*- coding: utf-8 -*-ます。ファイルを「ANSI」で保存するテキストエディターはこれを認識せず、もちろんそのままにしておきます。そのため、パーサーはファイルを UTF-8 として読み取ろうとしますが、UTF-8 ではないため失敗します。

\uxxxxソース内の非 ASCII 文字にはエスケープを使用できます。

したがって、代わりに:

str = u"€"

行う

str = u"\u20AC"
于 2013-04-18T16:02:55.660 に答える