comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[SOLUCIONADO] 'Ascii' codec can't encode character u'\xe1' in posit

  • 2 Respuestas
  • 2829 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado fortil

  • *
  • Underc0der
  • Mensajes: 175
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« en: Enero 07, 2013, 03:43:08 pm »
hola a todxs

de nuevo yo con mis dudas  ;D me ha costado bastante acostumbrarme a PyQt.

Resulta que tengo el siguiente código
Código: Python
  1. txt = str(self.IntroducirTexto.toPlainText())
  2. L = {"Á":"A","É":"E","Í":"I","Ó":"O","Ú":"U","á":"a","é":"e","í":"i","ó":"o","ú":"u"}
  3. l = {"\xc1":"A","\xc9":"E","\xcd":"I","\xd3":"O","\xda":"U","\xe1":"a","\xe9":"e","\xed":"i","\xf3":"o","\xfa":"u"}
  4. for i in txt:
  5.         if i in L.keys():
  6.                 txt = txt.replace(i,L[i])
  7. self.SalirTexto.setPlainText(txt)
  8.  
En realidad lo que quiero es un programa que convierta las palabras con tildes a palabras sin tildes, pero resulta que eso me funciona en python, pero en PyQt4 no me funciona.
He intentado con los dos diccionarios (l y L) y siempre me arroja un error
este es el error
Código: No tienes permisos para ver links. Registrate o Entra con tu cuenta
             txt = str(self.IntroducirTexto.toPlainText())
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe1' in position 3: ordinal not in tange(128)

he intentado poner txt = str(self.IntroducirTexto.toPlainText()).encode('utf-8') o txt = txt.encode('utf-8')
pero ninguna da frutos, sigue apareciendo el mismo error

y cuando uso la codificación que me da el mismo programa txt = _fromUtf8(self.IntroducirTexto.toPlainText()) me salen caracteres super raros en la otra ventana, como este �

les agradezco que me puedan ayudar con esto
« Última modificación: Septiembre 18, 2014, 09:02:05 pm por Expermicid »

Desconectado WhiZ

  • *
  • Underc0der
  • Mensajes: 395
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #1 en: Enero 09, 2013, 09:51:44 pm »
El problema es que no se puede utilizar str() sobre QString si éste último tiene acentos.
La solución es usar el método toAscii() de QString.

Acá te dejo el código
Código: Python
  1. txt = self.textEdit.text()
  2. print type(txt)
  3. txt = str(txt.toAscii)
  4. print type(txt)
  5.  

Y aquí la salida
Código: Python
  1. <class 'PyQt4.QtCore.QString'>
  2. <type 'str'>
  3.  

Espero que te sirva!

Saludos!
WhiZ
« Última modificación: Enero 09, 2013, 09:54:43 pm por WhiZ »


Desconectado fortil

  • *
  • Underc0der
  • Mensajes: 175
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« Respuesta #2 en: Enero 11, 2013, 01:06:06 am »
gracias WhiZ lo probaré xD

 

¿Te gustó el post? COMPARTILO!



[SOLUCIONADO] ¿Kali Linux o Kali Linux Ligth ?

Iniciado por worq

Respuestas: 2
Vistas: 6206
Último mensaje Noviembre 21, 2017, 12:28:54 pm
por Codig0Bit
[SOLUCIONADO] ¿Como publicar un software como software libre?

Iniciado por FuriosoJack

Respuestas: 2
Vistas: 1529
Último mensaje Mayo 23, 2017, 07:24:22 am
por HATI
[SOLUCIONADO] Multiuploader de imagenes con mysql, hosting de imagenes con mysql

Iniciado por graphixx

Respuestas: 4
Vistas: 2123
Último mensaje Marzo 26, 2013, 05:42:58 pm
por Xt3mP
[SOLUCIONADO] Linux Mint, errores, errores y mas errores...

Iniciado por n1sendev

Respuestas: 12
Vistas: 2663
Último mensaje Noviembre 22, 2017, 06:50:55 am
por RuidosoBSD
[SOLUCIONADO] Ayuda urgente con Virus "Virus.Win32Sality"

Iniciado por Napsters

Respuestas: 6
Vistas: 3339
Último mensaje Junio 11, 2012, 03:38:18 am
por Satyricon