私のコードで行うこと:
まず、codecs.open... を使用して、UTF-8 テキストファイルをロードします (はい、ダブル/トリプル/クアッドチェック: UTF-8 です)。
def load_verbslist(folder, name, utf_encoding):
fullname = os.path.join("daten", folder, name)
if utf_encoding:
with codecs.open(fullname, "r", "utf-8-sig") as name:
lines = name.readlines()
else:
name = open(fullname, "r")
lines = name.readlines()
for x in range(0, len(lines)):
lines[x] = lines[x].strip("\n")
lines[x] = lines[x].strip("\r")
return lines
そのファイルから、ソリューション文字列が得られます。後で行を分割し、すべてを再度エンコードして、次のように画面にブリットします。
class BlittedText():
def __init__(self, number, colour):
self.number = number
self.colour = colour
if self.number == 0: #Infinitiv
self.content = Solution.verb[0]
self.content = self.content.encode("utf-8")
self.text = Main.font1.render(str(self.content), 1, self.colour)
self.pos = (45, 45)
次に、これらの BlittedText() クラスのいくつかによって「Strings」という名前のリストを追加します。
次に、それを画面にブリットします。
for element in Strings:
screen.blit(element, position)
結果はこの写真で見ることができます: http://img341.imageshack.us/img341/6617/ee43.png Python シェル (左側) では、すべてが正しく表示されます。ソリューション TXT ファイル (間違いなく、確実に、100% が UTF-8 として保存されます)。画面では、入力 (黒) は正しくブリットしますが、ソリューション文字列 (緑と赤) には、Unicode 文字ではなく奇妙な文字が表示されます。私は思った、私はそれらを適切にエンコードしましたが、明らかにそうではありません:/
誰かが私の間違いを見つけますか?私の考えはどこで間違っていますか?
すでにありがとうございます!
パット