[Gvsig_desarrolladores] Editor de Scripts - Palabras con acentos

CARLOS COLOMBANA carlos.colombana en mtop.gub.uy
Jue Dic 8 12:26:31 CET 2016


Hola.

Finalmente decidí usar los códigos de la tabla junto con unichr, ahora funciona todo cómo debe.

Muchas gracias César.
Saludos!
________________________________________
De: gvsig_desarrolladores-bounces en listserv.gva.es <gvsig_desarrolladores-bounces en listserv.gva.es> en nombre de César Martínez <cmartinez en scolab.es>
Enviado: lunes, 05 de diciembre de 2016 13:06
Para: Lista de Desarrolladores de gvSIG
Asunto: Re: [Gvsig_desarrolladores] Editor de Scripts - Palabras con acentos

Hola, por lo que comentas podría ser que hubiese un problema en la
forma en la que gvSIG carga los scripts, usando la codificación del
sistema e ignorando la declarada en la cabecera.

Hasta que se solucione, tienes las dos opciones que comentabas:
- guardar el fichero como latin1 (funcionará si es la codificación de
tú sistema, aunque puede fallar si distribuyes los scripts a otros
usuarios)
- usar los códigos de la tabla, con lo cual evitas el problema de la
carga de caracteres especiales.

Espero que te sea de utilidad.

Saludos,

César

El día 5 de diciembre de 2016, 13:22, CARLOS COLOMBANA
<carlos.colombana en mtop.gub.uy> escribió:
> Hola.
>
>
> Había visto que el truco de la letra "u" delante funcionaba para el caso de
> una única cadena de texto, pero no logré descubrir cómo hacerlo funcionar a
> la hora de concatenar (sumar) más de una cadena de texto.
>
> En base a sus comentarios, volví a probar sustituyendo el encabezado de los
> scripts por:
>
>
> # encoding: latin-1
>
>
> Lo cual funcionó!, pero si entendí bien, no es una práctica recomendable.
>
> Entonces la solución sería usar la función unichr y los códigos de la tabla,
> ¿es correcto?, aunque no sea elegante.
>
> Se me ocurre concatenar (sumar) las cadenas de texto y guardarlas en una
> variable, antes, y luego pasar la variable utilizando la letra "u" delante.
> ¿Se les ocurre cómo hacerlo? (sin que la variable con la letra "u" delante
> sea interpretada como otra variable diferente, la cual no estaría definida,
> o errores similares).
>
> Muchísimas gracias a ambos por su ayuda y por los enlaces!
>
>
> Saludos!
>
> Carlos.
>
> ________________________________
> De: gvsig_desarrolladores-bounces en listserv.gva.es
> <gvsig_desarrolladores-bounces en listserv.gva.es> en nombre de Gilberto Cugler
> <gilbertocugler en gmail.com>
> Enviado: sábado, 03 de diciembre de 2016 11:07
> Para: Lista de Desarrolladores de gvSIG
> Cc: SERGIO ACOSTAYLARA
> Asunto: Re: [Gvsig_desarrolladores] Editor de Scripts - Palabras con acentos
>
> Olá;
>
> Eu tive o mesmo problema com a versão 2.1 em agosto/2015 e Joaquim me deu a
> seguinte solução.
> Ahora mismo no se como arreglarlo, pero podias probar a poner algo como:
>
>
>
> para probar si tiene que ver con la codificacion del sistema.
> Si so funcionase, la unica solucion que puedo darte ahora mismo es
> que apara introducir los caracteres especiales uses la funcion unichr.
> Puedes consultar los unicodes de los caracteres en la tabla:
>
> https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references#Character_entity_references_in_HTML
>
> el valor entre parentesis de la columna "unicode code point" es el codigo a
> usar
> en la funcion unichr.
>
> Un saludo
> Joaquin
>
> Fiz um teste em student e funcionou, pode ser uma saída de emergência, não é
> nada elegante porém resolve.
> Ver destaque em vermelho(Rojo)
>
>  userName = self.txtUserName.getText()
>     character_set = list( string.ascii_uppercase)
>     invalid_characters = ''.join(character for character in userName if not
> character in character_set)
>     if len(userName) == 0 or len(invalid_characters) != 0:
>       msgbox("Nome Inv"+unichr(225)+"lido !!!", "Forbidden", FORBIDEN)
>     else:
>       self.acceptUser(userName)
>       self.hide()
>
>   def btnCancel_click(self,*args):
>
> _____________________________________________________________________________
>
> No exemplo traduzido de
> http://downloads.gvsig.org/download/web/html/es/scripting_devel_guide/2.3/capturando_eventos.html
> o uso da letra "u" funciona perfeitamente.
>
> # encoding: utf-8
> from gvsig import *
> from gvsig.commonsdialog import *
>
> from org.gvsig.fmap.mapcontext.events.listeners import ViewPortListener
> from gvsig.libs.formpanel import FormPanel
> import os
>
>
> class MonitorEscala(ViewPortListener, FormPanel):
>         def __init__(self, mapContext):
>                 FormPanel.__init__(self,
> os.path.join(os.path.dirname(__file__),"monitor_escala.xml"))
>
>                 self.mapContext = mapContext
>
>                 #Iniciamos valores de etiquetas
>                 self.lblName.setText("Escala")
>                 self.txtScale.setText(self.getScale())
>
>                 # Agregamos listener al ViewPort
>                 self.mapContext.getViewPort().addViewPortListener(self)
>
>         def btnCerrar_click(self,*args):
>                 # Eliminamos el listener
>                 self.mapContext.getViewPort().removeViewPortListener(self)
>                 self.hide()
>
>         def getScale(self):
>                 scale = "1:"+ str(self.mapContext.getScaleView())
>                 return scale
>
>         def changeScale(self):
>                 self.txtScale.setText(self.getScale())
>
>         # Metodo obligatorio de ViewPortListener
>         def backColorChanged(self,*args):
>                 pass
>
>         # Metodo obligatorio de ViewPortListener
>         def extentChanged(self,*args):
>            self.changeScale()
>
>         # Metodo obligatorio de ViewPortListener
>         def projectionChanged(self,*args):
>                 pass
>
>
> def main(*args):
>         if currentView() == None:
>                 msgbox(u"É necessário ter uma vista aberta e ativa")
>                 return
>
>         mapContext = currentView().getMapContext()
>         monitor = MonitorEscala(mapContext)
>         monitor.showTool(u"Visualização da Escala")
>
> Espero que isto possa dar uma pista para a solução.
> abrazos
>
> 2016-12-03 8:18 GMT-02:00 Francisco Puga <fpuga en icarto.es>:
>>
>> Como dice gilberto el tema de los acentos u otros caracteres es
>> bastante confuso en todos los lenguajes de programación [4] [5]. En
>> concreto en python creo que hay que saber dos cosas básicas.
>>
>> * Encoding del fichero. Hay diferentes formas de representar un texto
>> a nivel interno del ordenador. Por decirlo de algún modo la forma en
>> que se representan se denomina encoding y empareja una letra
>> cualquiera "a" o "ñ" o lo que sea con un número que es lo que se puede
>> almacenar en un ordenador. Es el típico problema de los dbf, que
>> cuando abres con la hoja de cálculo te pregunta en que encoding está.
>> El encoding de un fichero python se representa con esa "línea mágica"
>> del principio del fichero y la recomendación es usar siempre utf-8
>> [1]. En python 3 se usa por defecto utf-8 por lo que no haría falta
>> [2]
>>
>> * Encoding de una cadena de texto concreta. Por defecto en python 2.x
>> las cadenas de texto que escribimos no se interpretan con un "encoding
>> bueno" [3], si no con uno genérico por decirlo de algún modo. Para que
>> los interprete con un "encoding bueno" en lugar de escribir
>> simplemente:
>>
>>  'Esta es mi cadena de texto con ñ'
>>
>> escribiremos
>>
>> u'Esta es mi cadena de texto con ñ'
>>
>> Esa "u" del principio es el truco.
>>
>> Usando la línea mágica del principio en "python normal" debería
>> funcionar todo correctamente y no necesitar la u, pero esto depende de
>> más factores y en gvSIG se está haciendo uso del intérprete de python
>> para java que igual introduce algún problemilla, por lo que no agarra
>> bien el encoding. Como resumen:
>>
>> 1) Poner siempre al principio:
>>
>> # -*- coding: utf-8 -*-
>>
>> 2) En caso de problemas poner delante de nuestra cadena con caracteres
>> raros la "u"
>>
>> [1] https://www.python.org/dev/peps/pep-0263/
>> [2] https://www.python.org/dev/peps/pep-3120/
>> [3] https://pythonhosted.org/kitchen/unicode-frustrations.html
>> [4] http://www.joelonsoftware.com/articles/Unicode.html
>> [5]
>> https://rainsoft.io/what-every-javascript-developer-should-know-about-unicode/
>>
>> El día 1 de diciembre de 2016, 15:56, CARLOS COLOMBANA
>> <carlos.colombana en mtop.gub.uy> escribió:
>> > Creo que el mail anterior rebotó por el tamaño del adjunto.
>> >
>> > Lo subí a github:
>> >
>> >
>> >
>> > https://github.com/nacho0605/GSoC/blob/master/GSoC_2016/01-TestCreatorAndPlayer/TestCreatorAndPlayer-1.0.0-38-testing-esp.gvspkg
>> >
>> >
>> > ________________________________
>> > De: CARLOS COLOMBANA
>> > Enviado: jueves, 01 de diciembre de 2016 11:31
>> > Para: Lista de Desarrolladores de gvSIG
>> > Cc: SERGIO ACOSTAYLARA
>> > Asunto: RE: [Gvsig_desarrolladores] Editor de Scripts - Palabras con
>> > acentos
>> >
>> >
>> > Hola Gilberto.
>> >
>> > Ya había probado ese truco pero no me funcionó, por las dudas lo volví a
>> > probar ahora pero sigue sin funcionar y me sigue dando el mismo mensaje
>> > de
>> > error.
>> >
>> > Muchas gracias de todas maneras.
>> >
>> >
>> > Trataré de contar muy resumidamente lo que estoy intentando hacer.
>> >
>> > Participé en el desarrollo de un addon [1] bajo la mentoría de Óscar
>> > Martínez y Joaquín del Cerro.
>> >
>> > Se hizo todo en inglés, ahora lo estoy traduciendo al español (adjunto)
>> > pero
>> > estoy teniendo problemas con las palabras con acento.
>> >
>> > Luego de instalar el addon, dentro de la carpeta de addons de gvSIG,
>> > dentro
>> > de la carpeta Test, se encuentran los siguientes módulos (con los cuales
>> > estoy teniendo problemas):
>> >
>> >
>> > - student.py: líneas 93 y 103.
>> >
>> > - testcreator.py: línea 50.
>> >
>> > - testcreatorpanel.py: línea 40.
>> >
>> > - report.py: línea 48.
>> >
>> >
>> > La disculpas del caso por lo extenso.
>> >
>> > Saludos.
>> >
>> > Carlos.
>> >
>> >
>> > [1]
>> >
>> > https://github.com/nacho0605/GSoC/tree/master/GSoC_2016/01-TestCreatorAndPlayer
>> >
>> > ________________________________
>> > De: gvsig_desarrolladores-bounces en listserv.gva.es
>> > <gvsig_desarrolladores-bounces en listserv.gva.es> en nombre de Gilberto
>> > Cugler
>> > <gilbertocugler en gmail.com>
>> > Enviado: miércoles, 30 de noviembre de 2016 12:30
>> > Para: Lista de Desarrolladores de gvSIG
>> > Asunto: Re: [Gvsig_desarrolladores] Editor de Scripts - Palabras con
>> > acentos
>> >
>> > Tens de colocar a letra u como no exemplo
>> > print u"Número de observação "
>> > un abrazo desde Brasil
>> >
>> > 2016-11-30 13:24 GMT-02:00 CARLOS COLOMBANA
>> > <carlos.colombana en mtop.gub.uy>:
>> >>
>> >> Hola.
>> >>
>> >>
>> >> Estoy tratando de emplear las funciones del módulo commonsdialog (entre
>> >> otras) utilizando palabras con acentos, pero me da error.
>> >>
>> >> En general el mensaje es del estilo:
>> >>
>> >>
>> >> SyntaxError: Illegal character ...
>> >>
>> >> ... for encoding 'utf-8'
>> >>
>> >>
>> >> Revisé los "Config.xml" de gvSIG (org.gvsig.app.mainplugin) y de la
>> >> extensión de scripting (org.gvsig.scripting.app.mainplugin), en ambos
>> >> casos
>> >> tiene por defecto la codificación de caracteres Latin-1:
>> >>
>> >>
>> >> encoding="ISO-8859-1"
>> >>
>> >>
>> >> Así que no debería de haber problema. Pero por otro lado, cada vez que
>> >> se
>> >> crea un nuevo script, en la primera línea aparece el siguiente
>> >> comentario:
>> >>
>> >>
>> >> # encoding: utf-8
>> >>
>> >>
>> >> ¿Alguien sabe que es lo que está sucediendo y cómo podría
>> >> solucionarlo?.
>> >>
>> >>
>> >> Saludos.
>> >>
>> >> Carlos.
>> >>
>> >>
>> >> _______________________________________________
>> >> gvSIG_desarrolladores mailing list
>> >> gvSIG_desarrolladores en listserv.gva.es
>> >> Para ver histórico de mensajes, editar sus preferencias de usuario o
>> >> darse
>> >> de baja en esta lista, acuda a la siguiente dirección:
>> >> https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
>> >>
>> >
>> >
>> >
>> > --
>> >
>> >
>> > Gilberto Cugler .´.
>> >
>> > _______________________________________________
>> > gvSIG_desarrolladores mailing list
>> > gvSIG_desarrolladores en listserv.gva.es
>> > Para ver histórico de mensajes, editar sus preferencias de usuario o
>> > darse
>> > de baja en esta lista, acuda a la siguiente dirección:
>> > https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
>> >
>>
>>
>>
>> --
>> Francisco Puga
>> iCarto | Innovación, Cooperación, Cartografía y Territorio S.L.
>> http://www.icarto.es/
>>
>> c/ Rafael Alberti nº 13 – 1º D
>> 15008 A Coruña
>> Galicia (Spain)
>> +34 881927808
>>
>> Este correo electrónico contiene información estrictamente
>> confidencial y es de uso exclusivo del destinatario, quedando
>> prohibida a cualquier otra persona su revelación, copia, distribución,
>> o el ejercicio de cualquier acción relativa a su contenido. Si ha
>> recibido este mensaje por error, por favor conteste a su remitente
>> mediante correo electrónico y proceda a borrarlo de su sistema.
>>
>> Sus datos personales serán tratados de forma confidencial y no serán
>> cedidos a terceros ajenos a ICARTO. En cualquier caso, podrá ejercer
>> los derecho de oposición, acceso, rectificación y cancelación de
>> acuerdo con lo establecido en la Ley Orgánica 15/99, de 13 de
>> diciembre, de Protección de Datos de Carácter Personal dirigiéndose a
>> Innovación, Cooperación, Cartografía e Territorio, SL. (ICARTO) en la
>> dirección postal a C/ Rafael Alberti, nº 13, 1ºD, 15.008 – (A Coruña).
>> _______________________________________________
>> gvSIG_desarrolladores mailing list
>> gvSIG_desarrolladores en listserv.gva.es
>> Para ver histórico de mensajes, editar sus preferencias de usuario o darse
>> de baja en esta lista, acuda a la siguiente dirección:
>> https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
>
>
>
>
> --
>
>
> Gilberto Cugler .´.
>
> _______________________________________________
> gvSIG_desarrolladores mailing list
> gvSIG_desarrolladores en listserv.gva.es
> Para ver histórico de mensajes, editar sus preferencias de usuario o darse
> de baja en esta lista, acuda a la siguiente dirección:
> https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
>



--
SCOLAB
http://scolab.es
_______________________________________________
gvSIG_desarrolladores mailing list
gvSIG_desarrolladores en listserv.gva.es
Para ver histórico de mensajes, editar sus preferencias de usuario o darse de baja en esta lista, acuda a la siguiente dirección: https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores


Más información sobre la lista de distribución gvSIG_desarrolladores