Почему ниже пункт не работает? и почему это удается с кодеком "latin-1"?
o = "a test of \xe9 char" #I want this to remain a string as this is what I am receiving
v = o.decode("utf-8")
результаты в:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python27\lib\encodings\utf_8.py",
line 16, in decode
return codecs.utf_8_decode(input, errors, True) UnicodeDecodeError:
'utf8' codec can't decode byte 0xe9 in position 10: invalid continuation byte
UnicodeEncodeError: 'ascii' codec can't encode characters in position 2-3: ordinal not in range(128)
ошибку при использовании.encode(latin-1)
У меня была такая же ошибка, когда я пытался открыть CSV-файл методом pandas read_csv.
Решением было изменить кодировку на 'latin-1':
источник
Это недействительный UTF-8. Этот символ является острым символом в ISO-Latin1, поэтому он успешно работает с этим набором кодов.
Если вы не знаете кодовый набор, в который вы получаете строки, у вас возникли проблемы. Было бы лучше, если бы для вашего протокола / приложения был выбран один кодовый набор (надеюсь, UTF-8), и тогда вы просто отклонили бы те, которые не были декодированы.
Если вы не можете этого сделать, вам понадобится эвристика.
источник
Потому что UTF-8 является многобайтовым и нет символа, соответствующего вашей комбинации
\xe9
плюс следующий пробел.Почему он должен иметь успех как в utf-8, так и в latin-1?
Вот как должно быть то же предложение в utf-8:
источник
Если эта ошибка возникает при манипулировании файлом, который был только что открыт, проверьте, открыли ли вы его в
'rb'
режимеисточник
soup = BeautifulSoup(open('webpage.html', 'rb'), 'html.parser')
Это случилось и со мной, когда я читал текст, содержащий иврит, из
.txt
файла.Я нажал:
file -> save as
и я сохранил этот файл вUTF-8
кодировкеисточник
Ошибка кода utf-8 обычно возникает, когда диапазон числовых значений превышает от 0 до 127.
причина поднять это исключение:
1) Если кодовая точка <128, каждый байт совпадает со значением кодовой точки. 2) Если кодовая точка 128 или больше, строка Unicode не может быть представлена в этой кодировке. (В этом случае Python вызывает исключение UnicodeEncodeError.)
Чтобы преодолеть это, у нас есть набор кодировок, наиболее широко используемым является «Latin-1, также известный как ISO-8859-1»
Таким образом, точки Unicode ISO-8859-1 0–255 идентичны значениям Latin-1, поэтому преобразование в эту кодировку просто требует преобразования кодовых точек в байтовые значения; если кодовая точка больше 255, строка не может быть закодирована в Latin-1
когда это исключение возникает при попытке загрузить набор данных, попробуйте использовать этот формат
Добавьте метод кодирования в конце синтаксиса, который затем принимает для загрузки набора данных.
источник
Используйте это, если оно показывает ошибку UTF-8
источник
В этом случае я попытался выполнить .py, который активен путь / file.sql.
Мое решение состояло в том, чтобы изменить кодификацию файла.sql на «UTF-8 без спецификации», и это работает!
Вы можете сделать это с помощью Notepad ++.
Я оставлю часть моего кода.
/ Код /
con = psycopg2.connect (host = sys.argv [1], port = sys.argv [2], dbname = sys.argv [3], user = sys.argv [4], пароль = sys.argv [5] )
cursor = con.cursor () sqlfile = open (путь, 'r')
источник