Я честно потратил много времени на это, и это медленно убивает меня.Я удалил содержимое из PDF и сохранил его в массиве.Теперь я пытаюсь извлечь его из массива и записать в текстовый файл.Тем не менее, мне кажется, что я не могу этого добиться из-за проблем с кодированием.
allTheNTMs.append(contentRaw[s1:].encode("utf-8"))
for a in range(len(allTheNTMs)):
kmlDescription = allTheNTMs[a]
print kmlDescription #this prints out fine
outputFile.write(kmlDescription)
Я получаю ошибку "unicodedecodeerror: кодек ascii не может декодировать байт 0xc2 в позиции 213: ординалне в диапазоне (128).
Сейчас я просто бездельничаю, но я попробовал все способы заставить этот материал написать.
outputFile.write(kmlDescription).decode('utf-8')
Пожалуйста, прости меняесли это просто, я все еще изучаю Python (2.7).
Cheers!
EDIT1: Пример данных выглядит примерно так:
Chart 3686 (plan, Morehead City) [ previous update 4997/11 ] NAD83 DATUM
Insert the accompanying block, showing amendments to coastline,
depths and dolphins, centred on: 34° 41´·19N., 76° 40´·43W.
Delete R 34° 43´·16N., 76° 41´·64W.
Когда ядобавить тип печати (raw), я получаю
Редактировать 2: Когда я просто пытаюсь записать данные, я получаю оригинальное сообщение об ошибке (кодек ascii не может декодировать байт ...)
Я проверю предложенную тему и видео. Спасибо, ребята!
Редактировать 3: я использую Python 2.7
Редактировать 4: agf ударил по ногте в голове в комментариях нижекогда он (и) заметил, что я выполняю двойное кодированиеКороль и выдал то же сообщение об ошибке, которое было первоначально выброшено.Что-то вроде:
text = "Here's a string, but imagine it has some weird symbols and whatnot in it - apparently latin-1"
textEncoded = text.encode('utf-8')
textEncodedX2 = textEncoded.encode('utf-8')
outputfile.write(textEncoded) #Works!
outputfile.write(textEncodedX2) #failed
Как только я понял, что пытаюсь выполнить двойное кодирование, решение было следующим:
allTheNTMs.append(contentRaw[s1:].encode("utf-8"))
for a in range(len(allTheNTMs)):
kmlDescription = allTheNTMs[a]
kmlDescriptionDecode = kmlDescription.decode("latin-1")
outputFile.write(kmlDescriptionDecode)
Это работает сейчас, и я очень признателен за вашу помощь!!