hola a todxs
de nuevo yo con mis dudas ;D me ha costado bastante acostumbrarme a PyQt.
Resulta que tengo el siguiente código
txt = str(self.IntroducirTexto.toPlainText())
L = {"Á":"A","É":"E","Í":"I","Ó":"O","Ú":"U","á":"a","é":"e","í":"i","ó":"o","ú":"u"}
l = {"\xc1":"A","\xc9":"E","\xcd":"I","\xd3":"O","\xda":"U","\xe1":"a","\xe9":"e","\xed":"i","\xf3":"o","\xfa":"u"}
for i in txt:
if i in L.keys():
txt = txt.replace(i,L[i])
self.SalirTexto.setPlainText(txt)
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
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
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
txt = self.textEdit.text()
print type(txt)
txt = str(txt.toAscii)
print type(txt)
Y aquí la salida
<class 'PyQt4.QtCore.QString'>
<type 'str'>
Espero que te sirva!
Saludos!
WhiZ
gracias WhiZ lo probaré xD