diff --git a/django/contrib/gis/gdal/feature.py b/django/contrib/gis/gdal/feature.py index cf42781ec4..6e857ca074 100644 --- a/django/contrib/gis/gdal/feature.py +++ b/django/contrib/gis/gdal/feature.py @@ -82,8 +82,13 @@ class Feature(GDALBase): @property def fields(self): "Return a list of fields in the Feature." - return [capi.get_field_name(capi.get_field_defn(self._layer._ldefn, i)) - for i in range(self.num_fields)] + return [ + force_text( + capi.get_field_name(capi.get_field_defn(self._layer._ldefn, i)), + self.encoding, + strings_only=True + ) for i in range(self.num_fields) + ] @property def geom(self): diff --git a/tests/gis_tests/gdal_tests/test_ds.py b/tests/gis_tests/gdal_tests/test_ds.py index 0cf0abdc70..535aba70fb 100644 --- a/tests/gis_tests/gdal_tests/test_ds.py +++ b/tests/gis_tests/gdal_tests/test_ds.py @@ -195,6 +195,7 @@ class DataSourceTest(unittest.TestCase): # Making sure we get the proper OGR Field instance, using # a string value index for the feature. self.assertIsInstance(feat[k], v) + self.assertIsInstance(feat.fields[0], str) # Testing Feature.__iter__ for fld in feat: