Tôi sử dụng UTF-8 trong trình soạn thảo của mình, vì vậy tất cả các chuỗi được hiển thị ở đây là UTF-8 trong tệp.Lỗi UTF-8 với Python và gettext
Tôi có một kịch bản python như thế này:
# -*- coding: utf-8 -*-
...
parser = optparse.OptionParser(
description=_('automates the dice rolling in the classic game "risk"'),
usage=_("usage: %prog attacking defending"))
Sau đó, tôi sử dụng xgettext để có được tất cả mọi thứ ra ngoài và có một tập tin .pot có thể được luộc xuống:
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
#: auto_dice.py:16
msgid "automates the dice rolling in the classic game \"risk\""
msgstr ""
Sau đó, Tôi đã sử dụng msginit để có được một số de.po
mà tôi điền như sau:
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: auto_dice.py:16
msgid "automates the dice rolling in the classic game \"risk\""
msgstr "automatisiert das Würfeln bei \"Risiko\""
Chạy tập lệnh, tôi nhận được lỗi sau:
File "/usr/lib/python2.6/optparse.py", line 1664, in print_help
file.write(self.format_help().encode(encoding, "replace"))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 60: ordinal not in range(128)
Làm cách nào để khắc phục điều đó?
Loại '_ (" usage:% prog attack defending ")' là gì? tức là 'in loại gì (_ (" sử dụng:% prog tấn công phòng thủ "))' in? – Mikel