gvSIG bugs #4431
Gestión incorrecta de los encodings el scripting
Status: | New | % Done: | 0% | |
---|---|---|---|---|
Priority: | Normal | Spent time: | - | |
Assignee: | - | |||
Category: | Scripting | |||
Target version: | - | |||
Severity: | Minor | Add-on version: | ||
gvSIG version: | 2.3.0 | Add-on build: | ||
gvSIG build: | Add-on resolve version: | |||
Operative System: | Add-on resolve build: | |||
Keywords: | Proyecto: | |||
Has patch: | Hito: | |||
Add-on name: | Unknown |
Description
(Siguiendo el hilo de mensajes en la lista de desarrollo: https://listserv.gva.es/pipermail/gvsig_desarrolladores/2016-December/008038.html )
Aunque no he podido hacer pruebas para verificarlo, diría que el problema es que los scripts se están cargando usando la codificación del sistema, en vez de la declarada en la cabecera, con lo cual en ocasiones se interpretan los caracteres de forma equivocada.
No estoy seguro, pero el error podría estar en el método getContentsAsText de DefaultScriptingExternalFile1, donde se lee el script sin tener en cuenta el encoding.
Se está usando FileUtils.readFileToString(File externFile)
y se debería usar FileUtils.readFileToString(File file, String encoding)
para lo cual primero que todo se debería leer el encoding declarado en la primera línea (y asumir latin1 si no se declara nada, de acuerdo con [2]).
[1] http://devel.gvsig.org/svn/gvsig-scripting/org.gvsig.scripting/trunk/org.gvsig.scripting/org.gvsig.scripting.lib/org.gvsig.scripting.lib.impl/src/main/java/org/gvsig/scripting/impl/DefaultScriptingExternalFile.java
[2] https://docs.python.org/2/howto/unicode.html