我试图通过属性更改唯一的shapefile数据源编码,以及如何将shapefile从LATIN1编码为UTF-8?但这并没有改变。
如果不保存QGIS项目,是否不能直接更改shapefile数据源编码?
我也尝试了这段代码,它显示了更改编码,但是当我再次打开shapefile时,它显示了相同的旧系统编码:
for layer in QgsMapLayerRegistry.instance().mapLayers().values():
layer.setProviderEncoding(u'UTF-8')
layer.dataProvider().setEncoding(u'UTF-8')
print layer.name(), layer.dataProvider().encoding()
(我不是保存QGIS项目,而是直接访问和保存shapefile。保存项目并执行此任务后,它将正常工作)
您可以看一下插件中的代码:shapefile_encoding_fixer
—
Jakob,
我可以通过qgis保存在shapefile中而不保存项目吗?
—
穆罕默德·法赞汗
您是否尝试过右键单击图层并使用该
—
约瑟夫
Save As...
选项?
@Joseph是的,当然,我已经在我的帖子中提到了这个答案!我将打开的形状文件定向到qgis项目中,并通过另存为更改其编码,但是当我再次打开它时,它仍然保留到系统中(未更改)。
—
穆罕默德·法赞汗
@Joseph我没有保存qgis项目,当我保存qgis项目并通过它打开shape文件时,它可以正常工作!
—
穆罕默德·法赞汗