[Gvsig_desarrolladores] Editor de Scripts - Palabras con acentos

Gilberto Cugler gilbertocugler en gmail.com
Sab Dic 3 15:07:22 CET 2016


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 .´.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listserv.gva.es/pipermail/gvsig_desarrolladores/attachments/20161203/0afd82eb/attachment.html>


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