Я читаю файл в utf-8 в Unicode, и я не получаю никаких ошибок.
try:
f = codecs.open(fil_name, "r","utf-8")
f_str = f.read()
То есть строка f_str находится в "Unicode"
Позже в программе я должен отправить строку (u) из f_str в сокет. Я пытаюсь преобразовать строку обратно в "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 ???