web-dev-qa-db-ja.com

UnicodeDecodeErrorが原因ですぐにDebianパッケージが壊れた

Quicklyでテストアプリケーションを作成しました。 quickly packageを使用すると、次の警告が表示されます。

Ubuntu packaging created in debian/
...............................................................................................................................................................................
Befehl gab einige WARNUNGEN zurück:
----------------------------------
** (setup.py:3685): WARNING **: Fehler beim Senden der Anmeldedaten: Fehler beim Senden der Nachricht: Die Operation ist nicht erlaubt
----------------------------------

.debをインストールしようとすると、次の警告が表示されます。

Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/aptdaemon/worker.py", line 1041, in _simulate
    trans.unauthenticated = self.__simulate(trans)
  File "/usr/lib/python2.7/dist-packages/aptdaemon/worker.py", line 1098, in __simulate
    deb = self.install_file(trans, simulate=True, **trans.kwargs)
  File "/usr/lib/python2.7/dist-packages/aptdaemon/worker.py", line 591, in install_file
    deb = self._check_deb_file(path, force, trans.uid)
  File "/usr/lib/python2.7/dist-packages/aptdaemon/worker.py", line 1227, in _check_deb_file
    "\n%s" % (path, stdout))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 48: ordinal not in range(128)

debuildパッケージの代わりにquicklyを実行すると、次の出力が得られました: http://Pastebin.ubuntu.com/1052328/

2
Cedric Krause

通常、このようなエラーが表示された場合は、英語以外の文字を表示できないことを意味します。これは、アプリケーションを翻訳してもらい、英語以外の文字を表示する必要がある場合によくある問題です。

これに対する私の回避策は、通常、表示される前に文字列をUTF-8に変換することです。例:

_str = widget.get_text(label).decode("UTF-8")
_

(注:このコードはテストしていませんが、通常、文字列にdecode()を追加すると機能します)。

1
jonobacon