2016-04-03 13 views
0

私はpythonスクリプトをdebianに書いています。今では、Windowsユーザーに配布するためにcx_Freezeを使ってスクリプトをフリーズしたいと思います。そのために、私はvirtualboxでpython 3.4.4がインストールされたwinpxシステムを実行しています。しかし、スクリプトをフリーズし、結果として得られるexeファイルを実行しようとすると、次のようになります。Python 3.4.4/win xp:encoding error

"UnicodeEncodeError: 'charmap'コーデックは11-14の位置に文字をエンコードできません:文字は(<) )」。

問題の中の文字は、これらは以下のとおりです。

ту╧╙

文字は、Pythonスクリプトが生成するFDFファイルの構文の一部です。また、凍結前のオリジナルのPythonスクリプトでも同じ問題があることが判明しました。システムのコマンドラインインタプリタがcp1250で動作している間、私はpythonのstdoutがcp852であると理解しています。私はPYTHONIOENCODINGを変更するさまざまな方法を試してきましたが、これまで役に立たなかったのは、さらに多くのエラーメッセージだけです。これを解決するために何かできることはありますか?

答えて

0

生成するファイルのエンコーディングを設定していますか?そうでない場合は、システムのエンコーディングがデフォルトになり、問題が説明されます。

stream = open('filename', 'w', encoding='utf8') 

それとも、あなたが実際にバイナリモードで出力ファイルを開く必要があります。ですから、このような出力ファイル(あなたが実際に必要なものによって代替UTF8)を開くことができます。キリル文字とボックス描画の間で変化するUnicode文字列が、実際に何かの構文になるのは奇妙に思えます。おそらく必要なのは、特定の8ビットエンコーディングの文字のバイト値です。

+0

チップをありがとう、それは問題を解決します。 %FDF-1.2 %のту╧╙ 1 0 OBJ << /FDF << /フィールド[ << /V(Pstcd) を:興味深いことに、これはFDFファイルの先頭には、次のようになります/ T(郵便番号) – bob