我正在构建一个程序,它能够用用户输入字典的字符替换消息中的字符。一些字符在文本文件中给出。因此,要导入它们,我使用了以下代码:
d = {}
with open("dictionary.txt") as d:
for line in d:
(key, val) = line.split()
d[str(key)] = val
它很好用,除了它在字典的开头加上“”。要替换的文本数组称为“单词”。这是我的代码:
for each in d:
words = ";".join(words)
words = words.replace(d[each],each)
words = words.split(";")
print words
然而,当我击中F5时,我得到了一大堆gobbledook。这是一个例子: \ XEF \ XBB \ XBF \ XEF \ XBB \ xbfA + / 084&安培;
我只是Python的新手,所以任何帮助都会受到赞赏。
答案 0 :(得分:1)
确保以UTF-8格式将文件保存在dictionnary文件中。 使用notepad ++(Windows),如果您以前的文件不是utf-8,则有转换函数。
“”模式与latin-1编码有关(如果使用utf-8编码,则不会有它)
然后,使用key.encode(“utf-8”)代替str(key),以避免将来可能出现其他错误。
如果您想了解更多信息,可以查看有关此内容的优秀Python文档:http://docs.python.org/2/howto/unicode.html