使用词典时的Unicode警告

时间:2016-07-19 19:34:34

标签: dictionary encryption unicode ascii

我已经玩了一段时间的Python 2.7,现在我正在努力制作自己的加密/解密算法。 我试图让它支持非Ascii字符。 所以这是词典的一部分:

... u'\xe6': '1101100', 'i': '0001000', u'\xea': '1100001', 'm': '0001100', u'\xee': '1100111', 'q': '0010000', 'u': '0010100', u'\xf6': '1110010', 'y': '0011000', '}': '1001111'}

但是当我尝试将“é”转换成binairy时,做

 base64 = encrypt[i]

其中,encrypt是dic的名称,i = u“é”

我收到此错误:

警告(来自警告模块):   文件“D:\ DeskTop 2 \ Programs \ Projects \ 4.py”,第174行     base64 =加密[i] UnicodeWarning:Unicode等同比较无法将两个参数都转换为Unicode - 将它们解释为不等等

追踪(最近一次通话):   文件“D:\ DeskTop 2 \ Programs \ Projects \ 4.py”,第197行,in     主要()   在主文件中输入文件“D:\ DeskTop 2 \ Programs \ Projects \ 4.py”,第196行     解密(密钥,加密,解密)   文件“D:\ DeskTop 2 \ Programs \ Projects \ 4.py”,第174行,解密     base64 =加密[i] KeyError:'\ xf1'

另外,我确实以

开头
# -*- coding: utf-8-*-

1 个答案:

答案 0 :(得分:0)

好的,抱歉无用的帖子。 我发现了修复。基本上,我做了:

for i in user_input:
    base64 = encrypt[i]

但我会像\ 0xe

我添加了

j = i.decode("latin-1")

所以j = u" \ 0xe" 现在它起作用了:D