Convertir GBK a la cadena utf8 en python

Tengo una cuerda.

s = u"alert('\xc7\xeb\xca\xe4\xc8\xeb\xd5\xfd\xc8\xb7\xd1\xe9\xd6\xa4\xc2\xeb,\xd0\xbb\xd0\xbb!');location='index.asp';" 

¿Cómo puedo traducir s en una cadena utf-8? He probado s.decode('gbk').encode('utf-8') pero Python informa de un error: UnicodeEncodeError: 'ascii' codec can't encode characters in position 35-50: ordinal not in range(128)

Related of "Convertir GBK a la cadena utf8 en python"

en python2, intente esto para convertir su cadena Unicode:

 >>> s.encode('latin-1').decode('gbk') u"" 

entonces puede codificar a utf-8 como desee.

 >>> s.encode('latin-1').decode('gbk').encode('utf-8') "" 

Estás mezclando manzanas y naranjas. La cadena codificada GBK no es una cadena Unicode y, por lo tanto, no debe terminar en una cadena u'...' .

Esta es la forma correcta de hacerlo en Python 2.

 g = '\xc7\xeb\xca\xe4\xc8\xeb\xd5\xfd\xc8\xb7\xd1\xe9\xd6\xa4\xc2\xeb,' \ '\xd0\xbb\xd0\xbb!'.decode('gbk') s = u"" 

Observe cómo el inicializador para g que se pasa a .decode('gbk') no se representa como una cadena Unicode, sino como una cadena de bytes simple.

Consulte también http://nedbatchelder.com/text/unipain.html

Si puede mantener la alerta en una cadena separada “a”:

 a = '\xc7\xeb\xca\xe4\xc8\xeb\xd5\xfd\xc8\xb7\xd1\xe9\xd6\xa4\xc2\xeb,\xd0\xbb\xd0\xbb!'.decode("gbk") s = u"" print s 

Entonces se imprimirá:

  

Si quieres extraer automáticamente la subcadena de una sola vez:

 s = "" s = unicode("'".join((s.decode("gbk").split("'",2)))) print s 

imprimirá:

   

Eche un vistazo a unicodedata pero creo que una forma de hacerlo es:

 import unicodedata s = u"" unicodedata.normalize('NFKD', s).encode('utf-8','ignore') 

Tengo la misma pregunta

Me gusta esto:

nombre = u ‘\ xb9 \ xc5 \ xbd \ xa3 \ xc6 \ xe6 \ xcc \ xb7’

Quiero convertir a

u ‘\ u53e4 \ u5251 \ u5947 \ u8c2d’

Aquí está mi solución:

new_name = name.encode (‘iso-8859-1’). decode (‘gbk’)

Y probé el tuyo

‘s = u “alert (‘ \ xc7 \ xeb \ xca \ xe4 \ xc8 \ xeb \ xd5 \ xfd \ xc8 \ xb7 \ xd1 \ xe9 \ xd6 \ xa4 \ xc2 \ xeb, \ xd0 \ xbb \ xd0 \ xbb! ‘ ); location = ‘index.asp’; ”

imprimir s

alert (‘ÇëÊäÈëÕýÈ · ÑéÖ¤Âë, Ð »Ð»!’); location = ‘index.asp’;

Entonces:

_s = s.encode (‘iso-8859-1’). decode (‘gbk’)

imprimir _s

alert (‘请 输入 正确 验证 码, 谢谢!’); location = ‘index.asp’;

La esperanza puede ayudarte.