プロパティを介してシェープファイルデータソースエンコーディングのみを変更しようとしました。また、シェープファイルをLATIN1からUTF-8にエンコードする方法も変更しましたか?しかし、それはそれを変更しません。
QGISプロジェクトを保存しないと、シェープファイルデータソースのエンコードを直接変更できませんか?
私もこのコードを試しましたが、変更エンコーディングを示していますが、シェープファイルをもう一度開くと、同じ古いシステムエンコーディングが示されています。
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プロジェクトを保存せず、シェイプファイルに直接アクセスして保存します。プロジェクトを保存してこのタスクを実行すると、正しく機能します)
Save As...
オプションを使用してみましたか?