Я пытаюсь импортировать картографические пограничные файлы переписи США (доступны здесь: http://www.census.gov/geo/www/cob/bdy_files.html) в приложение GeoDjango. Однако python жалуется на UnicodeDecodeErrors (например, для не-ascii символов в Пуэрто-Рико).
Файл описания шейп-файла (* .dbf) не указывает, какую кодировку символов он использует; это не определяется спецификацией шейп-файлов. Какую кодировку символов использовать?
У меня была та же проблема с данными CBSA и Place из форм полной геометрии переписи 2010 года. Это не вырезанные картотеки.
IBM850 Не работает правильно для меня. По своей прихоти я попробовал latin1, и он отлично работал.
В картографических пограничных файлах переписи США используется кодировка символов IBM850. Код Python для правильного кодирования этих строк будет выглядеть следующим образом:
IBM850
unicode(featurestring.decode("IBM850"))