【发布时间】:2012-03-17 10:58:58
【问题描述】:
我正在将 utf-8 格式的文件读入 unicode,但没有收到任何错误。
try:
f = codecs.open(fil_name, "r","utf-8")
f_str = f.read()
即字符串f_str在“unicode”中 稍后在程序中,我必须将 f_str 中的 (u) 字符串发送到套接字。我正在尝试将字符串转换回“utf-8”。
usock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
usock.connect(("xxx server", 123))
usock.send("TEXT %s\nENDQ\n" % f_str.replace("\n", " ").encode("utf-8"))
这里我收到一条错误消息:
usock.send("TEXT %s\nENDQ\n" % text.replace("\n", " ").encode("utf-8"))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 41: ordinal not in range(128)
在我的文本中,我的字符不能用纯 ASCII (äö..) 编码,但 utf-8 或 latin-1 没有问题。 为什么我收到此错误?我没有使用 ASCII,我使用的是 unicode/utf-8???
【问题讨论】: