Я столкнулся с проблемой, когда читал из объекта GEOSGeometry.Я использовал этот код
ds = DataSource(shp file path)
lyr = ds[0]
for feat in lyr:
geom_t = feat.geom.transform(wgs84, clone=True)
name =feat.get('name')
этот код отлично работает для моих файлов фигур. Но если поле name
содержит строку utf8, например 'تست', возникает эта ошибка
DjangoUnicodeDecodeError at /views/importdata/
'utf-8' codec can't decode byte 0xc8 in position 0: invalid continuation byte. You passed in b'\xc8\xe1\xe6\xc7\xd1 \xc7\xe3\xc7\xe3 \xd1\xd6\xc7' (<class 'bytes'>)
Unicode error hint
The string that could not be encoded/decoded was: �����
Хорошо, я обнаружил, что это внутренняя ошибка, связанная с gdal или geos wrapper в django.ошибка исходит из этой строки
return force_text(string, encoding=self._feat.encoding, strings_only=True)
в field.py в этом каталоге
D:\Python\Python36\lib\site-packages\django\contrib\gis\gdal\field.py in as_string
Есть ли способ найти решение этой проблемы?спасибо