Traté de cambiar la única codificación del origen de datos del archivo de forma a través de propiedades y también ¿Cómo codificar archivos de forma de LATIN1 a UTF-8? Pero no lo cambia.
Sin guardar el proyecto QGIS, ¿no puedo cambiar directamente la codificación del origen de datos del archivo de forma?
También probé este código, muestra la codificación de cambio pero cuando abro el archivo de forma nuevamente muestra la misma codificación del sistema anterior:
for layer in QgsMapLayerRegistry.instance().mapLayers().values():
layer.setProviderEncoding(u'UTF-8')
layer.dataProvider().setEncoding(u'UTF-8')
print layer.name(), layer.dataProvider().encoding()
(No estoy guardando el proyecto QGIS, solo accedo y guardo el archivo shape directamente. Cuando guardo el proyecto y hago esta tarea, funciona correctamente )
Save As...
opción?Respuestas:
Desde la barra de menú, vaya a:
y desmarque la opción Ignorar la configuración de declaración de codificación del archivo de forma :
Esto establece que todas las capas cargadas en QGIS se codifiquen por defecto en
UTF-8
fuente
Para recapitular la ubicación diferente donde puede establecer la codificación:
Cuando abres un archivo shape:
Cuando abres un CSV:
Cuando guarda un archivo vectorial:
En las propiedades de la capa:
Y, como mencionó @Joseph, probablemente debería desmarcar la opción Ignorar la configuración de la declaración de codificación del archivo de forma.
fuente
Cuando lo use
Save As ...
, debe seleccionar un nombre de archivo diferente yAdd file to canvas
.Como consecuencia, DEBE guardar el proyecto también para obtener el nuevo archivo de forma. El proyecto no guardado todavía incluye el archivo de forma intacto y la codificación incorrecta.
Por cierto,
Data encoding
en las propiedades de la capa es parte del archivo del proyecto, no el archivo de forma. Su ejemplo de código no escribe nada dentro del archivo de forma, solo cambia la configuración de capa del proyecto.fuente