Discussion:
Convertir utf8 a html entities
(too old to reply)
unknown
2012-06-05 11:53:52 UTC
Permalink
Hola,

he leido de todo y nada me ha gustado. Como convertís un string utf8 a
un string con carácteres html? o sea, que los accentos se transformen
a codificación html?

En este pequeño código, convertimos á é í ó ú ñ -> a htm entities.
Pero falta mayúsculas, ç (catalán), ....

import re

value u'Camión'

value = re.sub(r'\xe1', "á", value)
value = re.sub(r'\xe9', "é", value)
value = re.sub(r'\xed', "í", value)
value = re.sub(r'\xf3', "ó", value)
value = re.sub(r'\xfa', "ú", value)
value = re.sub(r'\xf1', "ñ", value)

--
Si us plau, NO adjunti arxius a les seves respostes. Li preguem que
integri el text al cos del missatge. Pot respondre usant NetEtiquete
que li ajudarà a seguir la conversa.
http://es.wikipedia.org/wiki/Netiquette

Por favor, NO adjunte archivos a sus respuestas. Le rogamos que
integre el texto en el cuerpo del mensaje. Puede responder usando
NetEtiquete que le ayudará a seguir la
conversación.http://es.wikipedia.org/wiki/Netiquette

Please, DO NOT send attachment files with your answers, just copy and
paste only the text you need to send into the body of your mails.
Repply using NetEtiquete. http://en.wikipedia.org/wiki/Netiquette
unknown
2012-06-05 12:00:59 UTC
Permalink
Según la documentación oficial:

http://docs.python.org/library/htmllib.html#module-htmlentitydefs

2012/6/5 Raimon Esteve <raimonesteve en gmail.com>

> Hola,
>
> he leido de todo y nada me ha gustado. Como convertís un string utf8 a
> un string con carácteres html? o sea, que los accentos se transformen
> a codificación html?
>
> En este pequeño código, convertimos á é í ó ú ñ -> a htm entities.
> Pero falta mayúsculas, ç (catalán), ....
>
> import re
>
> value u'Camión'
>
> value = re.sub(r'\xe1', "&aacute;", value)
> value = re.sub(r'\xe9', "&eacute;", value)
> value = re.sub(r'\xed', "&iacute;", value)
> value = re.sub(r'\xf3', "&oacute;", value)
> value = re.sub(r'\xfa', "&uacute;", value)
> value = re.sub(r'\xf1', "&ntilde;", value)
>
> --
> Si us plau, NO adjunti arxius a les seves respostes. Li preguem que
> integri el text al cos del missatge. Pot respondre usant NetEtiquete
> que li ajudarà a seguir la conversa.
> http://es.wikipedia.org/wiki/Netiquette
>
> Por favor, NO adjunte archivos a sus respuestas. Le rogamos que
> integre el texto en el cuerpo del mensaje. Puede responder usando
> NetEtiquete que le ayudará a seguir la
> conversación.http://es.wikipedia.org/wiki/Netiquette
>
> Please, DO NOT send attachment files with your answers, just copy and
> paste only the text you need to send into the body of your mails.
> Repply using NetEtiquete. http://en.wikipedia.org/wiki/Netiquette
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>



--
Raúl Cumplido
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20120605/b8e78a85/attachment.html>
unknown
2012-06-05 12:13:31 UTC
Permalink
El día 5 de junio de 2012 14:00, Raúl Cumplido
<raulcumplido en gmail.com> escribió:
> Según la documentación oficial:
>
> http://docs.python.org/library/htmllib.html#module-htmlentitydefs

correcto, pero tienes que ir carácter por carácter del string. No hay
nada más "limpio"?

--
Si us plau, NO adjunti arxius a les seves respostes. Li preguem que
integri el text al cos del missatge. Pot respondre usant NetEtiquete
que li ajudarà a seguir la conversa.
http://es.wikipedia.org/wiki/Netiquette

Por favor, NO adjunte archivos a sus respuestas. Le rogamos que
integre el texto en el cuerpo del mensaje. Puede responder usando
NetEtiquete que le ayudará a seguir la
conversación.http://es.wikipedia.org/wiki/Netiquette

Please, DO NOT send attachment files with your answers, just copy and
paste only the text you need to send into the body of your mails.
Repply using NetEtiquete. http://en.wikipedia.org/wiki/Netiquette
unknown
2012-06-05 12:25:40 UTC
Permalink
No soy experto ni mucho menos en Python, pero, has pensado en mirar con
expresiones regulares el tema? Me refiero, busca una coincidencia de una
tilde, por ejemplo, y reemplázala con un tilde formateado en HTML. Esto lo
puedes hacer con una herramienta de Linux llamada sed (que es lo que uso
yo) o te puedes construír tu propia herramienta en Python...

http://www.vicente-navarro.com/blog/2007/04/13/expresiones-regulares-en-la-shell-ejemplos-de-uso-con-grep-awk-y-sed/
Este link te puede servir, informa sobre las expresiones regulares. Está
aplicado a bash, pero creo que se puede llevar a Python

El 5 de junio de 2012 08:13, Raimon Esteve <raimonesteve en gmail.com>escribió:

> El día 5 de junio de 2012 14:00, Raúl Cumplido
> <raulcumplido en gmail.com> escribió:
> > Según la documentación oficial:
> >
> > http://docs.python.org/library/htmllib.html#module-htmlentitydefs
>
> correcto, pero tienes que ir carácter por carácter del string. No hay
> nada más "limpio"?
>
> --
> Si us plau, NO adjunti arxius a les seves respostes. Li preguem que
> integri el text al cos del missatge. Pot respondre usant NetEtiquete
> que li ajudarà a seguir la conversa.
> http://es.wikipedia.org/wiki/Netiquette
>
> Por favor, NO adjunte archivos a sus respuestas. Le rogamos que
> integre el texto en el cuerpo del mensaje. Puede responder usando
> NetEtiquete que le ayudará a seguir la
> conversación.http://es.wikipedia.org/wiki/Netiquette
>
> Please, DO NOT send attachment files with your answers, just copy and
> paste only the text you need to send into the body of your mails.
> Repply using NetEtiquete. http://en.wikipedia.org/wiki/Netiquette
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>



--
Saludos

*Héctor Herrera Anabalón*
Egresado ICCI UNAP
Soporte IT en CNN Chile
Miembro USoLIX Victoria
Registered User #548600 (LinuxCounter.net)
+56983118902
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20120605/c139df63/attachment.html>
unknown
2012-06-05 12:26:56 UTC
Permalink
Realmente lo que viene siendo es un diccionario con todas las entities a
substituir:

htmlentitydefs.codepoint2name
{8704: 'forall', 8194: 'ensp', 8195: 'emsp', 8709: 'empty', 8711: 'nabla',
8712: 'isin', 8201: 'thinsp', 8715: 'ni', 8204: 'zwnj', 8205: 'zwj', 8206:
'lrm', 8719: 'prod', 8721: 'sum', 8722: 'minus', 8211: 'ndash', 8212:
'mdash', 8727: 'lowast', 8216: 'lsquo', 8217: 'rsquo', 8730: 'radic', 175:
'macr', 8220: 'ldquo', 8221: 'rdquo', 8222: 'bdquo', 8224: 'dagger', 8225:
'Dagger', 8226: 'bull', 8230: 'hellip', 8743: 'and', 8744: 'or', 8745:
'cap', 8746: 'cup', 8747: 'int', 8240: 'permil', 8242: 'prime', 8243:
'Prime', 8756: 'there4', 8713: 'notin', 8249: 'lsaquo', 8250: 'rsaquo',
8764: 'sim', 62: 'gt', 8629: 'crarr', 9824: 'spades', 8260: 'frasl', 8773:
'cong', 8776: 'asymp', 8207: 'rlm', 9829: 'hearts', 8800: 'ne', 8801:
'equiv', 9827: 'clubs', 8804: 'le', 8805: 'ge', 9830: 'diams', 38: 'amp',
8834: 'sub', 8835: 'sup', 8836: 'nsub', 8838: 'sube', 8839: 'supe', 8853:
'oplus', 8855: 'otimes', 8734: 'infin', 8218: 'sbquo', 8901: 'sdot', 160:
'nbsp', 161: 'iexcl', 162: 'cent', 163: 'pound', 164: 'curren', 8869:
'perp', 166: 'brvbar', 167: 'sect', 168: 'uml', 169: 'copy', 170: 'ordf',
171: 'laquo', 8364: 'euro', 173: 'shy', 174: 'reg', 8733: 'prop', 176:
'deg', 177: 'plusmn', 178: 'sup2', 179: 'sup3', 180: 'acute', 181: 'micro',
182: 'para', 183: 'middot', 184: 'cedil', 185: 'sup1', 186: 'ordm', 187:
'raquo', 188: 'frac14', 189: 'frac12', 190: 'frac34', 191: 'iquest', 192:
'Agrave', 193: 'Aacute', 194: 'Acirc', 195: 'Atilde', 196: 'Auml', 197:
'Aring', 198: 'AElig', 199: 'Ccedil', 200: 'Egrave', 201: 'Eacute', 202:
'Ecirc', 203: 'Euml', 204: 'Igrave', 34: 'quot', 206: 'Icirc', 207: 'Iuml',
208: 'ETH', 209: 'Ntilde', 210: 'Ograve', 211: 'Oacute', 212: 'Ocirc', 213:
'Otilde', 214: 'Ouml', 215: 'times', 216: 'Oslash', 217: 'Ugrave', 218:
'Uacute', 219: 'Ucirc', 220: 'Uuml', 221: 'Yacute', 222: 'THORN', 223:
'szlig', 224: 'agrave', 225: 'aacute', 226: 'acirc', 227: 'atilde', 228:
'auml', 229: 'aring', 230: 'aelig', 231: 'ccedil', 232: 'egrave', 205:
'Iacute', 234: 'ecirc', 235: 'euml', 236: 'igrave', 8658: 'rArr', 238:
'icirc', 239: 'iuml', 240: 'eth', 241: 'ntilde', 242: 'ograve', 243:
'oacute', 244: 'ocirc', 245: 'otilde', 246: 'ouml', 247: 'divide', 248:
'oslash', 249: 'ugrave', 250: 'uacute', 251: 'ucirc', 252: 'uuml', 253:
'yacute', 254: 'thorn', 255: 'yuml', 172: 'not', 8968: 'lceil', 8969:
'rceil', 8970: 'lfloor', 8971: 'rfloor', 8465: 'image', 8472: 'weierp',
8476: 'real', 8482: 'trade', 732: 'tilde', 9002: 'rang', 8736: 'ang', 402:
'fnof', 8706: 'part', 8501: 'alefsym', 710: 'circ', 338: 'OElig', 339:
'oelig', 352: 'Scaron', 353: 'scaron', 8593: 'uarr', 60: 'lt', 8594:
'rarr', 8707: 'exist', 8595: 'darr', 8254: 'oline', 233: 'eacute', 376:
'Yuml', 916: 'Delta', 237: 'iacute', 8592: 'larr', 913: 'Alpha', 914:
'Beta', 915: 'Gamma', 8596: 'harr', 917: 'Epsilon', 918: 'Zeta', 919:
'Eta', 920: 'Theta', 921: 'Iota', 922: 'Kappa', 923: 'Lambda', 924: 'Mu',
925: 'Nu', 926: 'Xi', 927: 'Omicron', 928: 'Pi', 929: 'Rho', 931: 'Sigma',
932: 'Tau', 933: 'Upsilon', 934: 'Phi', 935: 'Chi', 936: 'Psi', 937:
'Omega', 945: 'alpha', 946: 'beta', 947: 'gamma', 948: 'delta', 949:
'epsilon', 950: 'zeta', 951: 'eta', 952: 'theta', 953: 'iota', 954:
'kappa', 955: 'lambda', 956: 'mu', 957: 'nu', 958: 'xi', 959: 'omicron',
960: 'pi', 961: 'rho', 962: 'sigmaf', 963: 'sigma', 964: 'tau', 965:
'upsilon', 966: 'phi', 967: 'chi', 968: 'psi', 969: 'omega', 9674: 'loz',
8656: 'lArr', 977: 'thetasym', 978: 'upsih', 8659: 'dArr', 8660: 'hArr',
982: 'piv', 165: 'yen', 8657: 'uArr', 9001: 'lang'}

Lo que tienes que hacer es recorrer tu texto y si el ord(caracter) se
encuentra en el diccionario sustituirlo, sino dejarlo como esta. Que tienes
que recorrer todo el texto, si ... quizás tienes razón que no es muy bonito
y que probablemente con regular expressiones sería más rápido, pero vas a
tener que meter todas las posibilidades que tienes en el diccionario.

Saludos,

Raúl

2012/6/5 Raimon Esteve <raimonesteve en gmail.com>

> El día 5 de junio de 2012 14:00, Raúl Cumplido
> <raulcumplido en gmail.com> escribió:
> > Según la documentación oficial:
> >
> > http://docs.python.org/library/htmllib.html#module-htmlentitydefs
>
> correcto, pero tienes que ir carácter por carácter del string. No hay
> nada más "limpio"?
>
> --
> Si us plau, NO adjunti arxius a les seves respostes. Li preguem que
> integri el text al cos del missatge. Pot respondre usant NetEtiquete
> que li ajudarà a seguir la conversa.
> http://es.wikipedia.org/wiki/Netiquette
>
> Por favor, NO adjunte archivos a sus respuestas. Le rogamos que
> integre el texto en el cuerpo del mensaje. Puede responder usando
> NetEtiquete que le ayudará a seguir la
> conversación.http://es.wikipedia.org/wiki/Netiquette
>
> Please, DO NOT send attachment files with your answers, just copy and
> paste only the text you need to send into the body of your mails.
> Repply using NetEtiquete. http://en.wikipedia.org/wiki/Netiquette
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>



--
Raúl Cumplido
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20120605/05876f22/attachment.html>
unknown
2012-06-05 12:42:29 UTC
Permalink
2012/6/5 Raúl Cumplido <raulcumplido en gmail.com>:
> probablemente con regular expressiones sería más rápido, pero vas a tener
> que meter todas las posibilidades que tienes en el diccionario.

Siempre puedes escribir código que te genere todo ese código en re.
unknown
2012-06-05 13:54:16 UTC
Permalink
otra opcion:
1) expresión regular que te saque la lista ordenada de los caracteres
a transformar
2) sustituir los caracteres a transformar por %s
3) mapear una funcion de traduccion a la lista del punto 1
4) texto_del_pto_2 % lista_pto_3

2012/6/5 Da?id <davidmenhur en gmail.com>:
> 2012/6/5 Raúl Cumplido <raulcumplido en gmail.com>:
>> probablemente con regular expressiones sería más rápido, pero vas a tener
>> que meter todas las posibilidades que tienes en el diccionario.
>
> Siempre puedes escribir código que te genere todo ese código en re.
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
unknown
2012-06-05 13:59:22 UTC
Permalink
Yo creo que no hay que darle muchas vueltas al tema, puede que escrito
quede más "bonito", pero la expresion regular, dentro de lo que cabe,
seguirá recorriendo todo el string, incluso lo tendras que recorrer mas
veces, una por cada substitución.
Van a ser de la misma complejidad, O(n), o incluso la de expresiones
regulares seria O(k*n).

Asi que yo usaría la libreria de python.

El 5 de junio de 2012 15:54, G V <nadaird en gmail.com> escribió:

> otra opcion:
> 1) expresión regular que te saque la lista ordenada de los caracteres
> a transformar
> 2) sustituir los caracteres a transformar por %s
> 3) mapear una funcion de traduccion a la lista del punto 1
> 4) texto_del_pto_2 % lista_pto_3
>
> 2012/6/5 Da?id <davidmenhur en gmail.com>:
> > 2012/6/5 Raúl Cumplido <raulcumplido en gmail.com>:
> >> probablemente con regular expressiones sería más rápido, pero vas a
> tener
> >> que meter todas las posibilidades que tienes en el diccionario.
> >
> > Siempre puedes escribir código que te genere todo ese código en re.
> > _______________________________________________
> > Python-es mailing list
> > Python-es en python.org
> > http://mail.python.org/mailman/listinfo/python-es
> > FAQ: http://python-es-faq.wikidot.com/
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>



--
Miguel García Lafuente - Rock Neurotiko
Vocal de la Junta Directiva Nacional del Partido Pirata.
Coordinador de Jóvenes Piratas en Madrid.

"Libertad en lugar de miedo." - "Información libre, sociedad libre."

El contenido de este e-mail es privado, no se permite la revelacion del
contenido de este e-mail a gente ajena a él.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20120605/0aa63472/attachment.html>
unknown
2012-06-05 17:40:47 UTC
Permalink
El día 5 de junio de 2012 15:59, Rock Neurotiko
<miguelglafuente en gmail.com> escribió:
> Yo creo que no hay que darle muchas vueltas al tema, puede que escrito quede
> más "bonito", pero la expresion regular, dentro de lo que cabe, seguirá
> recorriendo todo el string, incluso lo tendras que recorrer mas veces, una
> por cada substitución.
> Van a ser de la misma complejidad, O(n), o incluso la de expresiones
> regulares seria O(k*n).

No estoy de acuerdo. Muchas librerías, como la de las expresiones
regulares, se programan y optimizan en C con lo que su uso puede
resultar muy eficiente. Pero en el caso concreto de las expresiones
regulares, se pueden combinar todos los caracteres a buscar en una
sóla cadena de búsqueda con lo que sólo recorrer la cadena una sóla
vez:

import re
from htmlentitydefs import codepoint2name

u2n=dict((unichr(k),v) for (k,v) in codepoint2name.items())

pat=re.compile('['+"".join(u2n.keys())+']')

def repl(m):
return '&'+u2n[m.group(0)]+';'

print( pat.sub(repl, u"áÁ éÉ íÍ óÓ úÚ ñÑ çÇ ?") )


Este uso muestra muy poco del potencial que tienen las expresiones
regulares. Para el caso que nos ocupa, posiblemente existan otras
soluciones más rápidas y elegantes de hacer lo mismo, o incluso tan
crípticas como ésta:

print( "".join( ('&'+u2n[c]+';') if ord(c) in u2n else c for c in
u""áÁ éÉ íÍ óÓ úÚ ñÑ çÇ ?") )

...que viene a ser una solución "compacta" de las ya propuestas en
mensajes anteriores.


--
Hyperreals *R: http://ch3m4.org/blog
Quarks, bits y otras criaturas infinitesimales
unknown
2012-06-05 17:50:35 UTC
Permalink
Tienes razon, por eso digo "incluso lo tendras que recorrer", porque una de
dos, o te haces el pedazo de expresion regular con todos los casos, o las
vas haciendo mas pequeñas.

De todas formas, se supone que Python debería ser legible, y para mi las
expresiones regulares muy crípticas (la que has puesto todavia se entiende)
no son muy legibles, pero bueno, cada uno hace con su codigo lo que quiere
xD

El 5 de junio de 2012 19:40, Chema Cortes <pych3m4 en gmail.com> escribió:

> El día 5 de junio de 2012 15:59, Rock Neurotiko
> <miguelglafuente en gmail.com> escribió:
> > Yo creo que no hay que darle muchas vueltas al tema, puede que escrito
> quede
> > más "bonito", pero la expresion regular, dentro de lo que cabe, seguirá
> > recorriendo todo el string, incluso lo tendras que recorrer mas veces,
> una
> > por cada substitución.
> > Van a ser de la misma complejidad, O(n), o incluso la de expresiones
> > regulares seria O(k*n).
>
> No estoy de acuerdo. Muchas librerías, como la de las expresiones
> regulares, se programan y optimizan en C con lo que su uso puede
> resultar muy eficiente. Pero en el caso concreto de las expresiones
> regulares, se pueden combinar todos los caracteres a buscar en una
> sóla cadena de búsqueda con lo que sólo recorrer la cadena una sóla
> vez:
>
> import re
> from htmlentitydefs import codepoint2name
>
> u2n=dict((unichr(k),v) for (k,v) in codepoint2name.items())
>
> pat=re.compile('['+"".join(u2n.keys())+']')
>
> def repl(m):
> return '&'+u2n[m.group(0)]+';'
>
> print( pat.sub(repl, u"áÁ éÉ íÍ óÓ úÚ ñÑ çÇ ?") )
>
>
> Este uso muestra muy poco del potencial que tienen las expresiones
> regulares. Para el caso que nos ocupa, posiblemente existan otras
> soluciones más rápidas y elegantes de hacer lo mismo, o incluso tan
> crípticas como ésta:
>
> print( "".join( ('&'+u2n[c]+';') if ord(c) in u2n else c for c in
> u""áÁ éÉ íÍ óÓ úÚ ñÑ çÇ ?") )
>
> ...que viene a ser una solución "compacta" de las ya propuestas en
> mensajes anteriores.
>
>
> --
> Hyperreals *R: http://ch3m4.org/blog
> Quarks, bits y otras criaturas infinitesimales
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>



--
Miguel García Lafuente - Rock Neurotiko
Vocal de la Junta Directiva Nacional del Partido Pirata.
Coordinador de Jóvenes Piratas en Madrid.

"Libertad en lugar de miedo." - "Información libre, sociedad libre."

El contenido de este e-mail es privado, no se permite la revelacion del
contenido de este e-mail a gente ajena a él.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20120605/1f54e810/attachment.html>
unknown
2012-06-05 12:24:49 UTC
Permalink
puedes usar los métodos encode y decode de los strings, encode admite un
segundo parametro
donde se indica como manejar los errores a la hora de codificar, si
usas xmlcharrefreplace
este los reemplaza por su caracteres xml.

"á é í ó ú ñ".decode("utf-8").encode("ascii", "xmlcharrefreplace")

devuelve

'&#225; &#233; &#237; &#243; &#250; &#241;'
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20120605/cfe5b19c/attachment.html>
unknown
2012-06-05 18:29:24 UTC
Permalink
El día 5 de junio de 2012 13:53, Raimon Esteve
<raimonesteve en gmail.com> escribió:
> Hola,
>
> he leido de todo y nada me ha gustado. Como convertís un string utf8 a
> un string con carácteres html? o sea, que los accentos se transformen
> a codificación html?
>
> En este pequeño código, convertimos á é í ó ú ñ -> a htm entities.
> Pero falta mayúsculas, ç (catalán), ....
>

Yo uso un parser de xml/html y un writer para HTML

>>> from amara.bindery import html
>>> from amara.writers import lookup
>>> HTML_W = lookup("html")
>>> doc = html.parse('<p>Caña áéíóú ç</p>')
>>> doc.xml_encode(HTML_W)
'<html><head></head><body><p>Ca&ntilde;a
&aacute;&eacute;&iacute;&oacute;&uacute; &ccedil;</p></body></html>'


Saludos,

-- luismiguel  (@lmorillas)

> import re
>
> value u'Camión'
>
> value = re.sub(r'\xe1', "&aacute;", value)
> value = re.sub(r'\xe9', "&eacute;", value)
> value = re.sub(r'\xed', "&iacute;", value)
> value = re.sub(r'\xf3', "&oacute;", value)
> value = re.sub(r'\xfa', "&uacute;", value)
> value = re.sub(r'\xf1', "&ntilde;", value)
>
> --
> Si us plau, NO adjunti arxius a les seves respostes. Li preguem que
> integri el text al cos del missatge. Pot respondre usant NetEtiquete
> que li ajudarà a seguir la conversa.
> http://es.wikipedia.org/wiki/Netiquette
>
> Por favor, NO adjunte archivos a sus respuestas. Le rogamos que
> integre el texto en el cuerpo del mensaje. Puede responder usando
> NetEtiquete que le ayudará a seguir la
> conversación.http://es.wikipedia.org/wiki/Netiquette
>
> Please, DO NOT send attachment files with your answers, just copy and
> paste only the text you need to send into the body of your mails.
> Repply using NetEtiquete. http://en.wikipedia.org/wiki/Netiquette
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
unknown
2012-06-05 20:29:22 UTC
Permalink
Y no se podría hacer algo con maketrans y translate de string?



_______________________________________________________________

Gonzalo Fernández Hernández





gfernandez en tecnatom.es


Avda. Montes de Oca, 1
28703 San Sebastián de los Reyes-Madrid
Telf. 91 659 86 00 / 8205



________________________________________
De: python-es-bounces+gfernandez=tecnatom.es en python.org [python-es-bounces+gfernandez=tecnatom.es en python.org] En nombre de Luis Miguel Morillas [morillas en gmail.com]
Enviado el: martes, 05 de junio de 2012 20:29
Para: La lista de python en castellano
Asunto: Re: [Python-es] Convertir utf8 a html entities

El día 5 de junio de 2012 13:53, Raimon Esteve
<raimonesteve en gmail.com> escribió:
> Hola,
>
> he leido de todo y nada me ha gustado. Como convertís un string utf8 a
> un string con carácteres html? o sea, que los accentos se transformen
> a codificación html?
>
> En este pequeño código, convertimos á é í ó ú ñ -> a htm entities.
> Pero falta mayúsculas, ç (catalán), ....
>

Yo uso un parser de xml/html y un writer para HTML

>>> from amara.bindery import html
>>> from amara.writers import lookup
>>> HTML_W = lookup("html")
>>> doc = html.parse('<p>Caña áéíóú ç</p>')
>>> doc.xml_encode(HTML_W)
'<html><head></head><body><p>Ca&ntilde;a
&aacute;&eacute;&iacute;&oacute;&uacute; &ccedil;</p></body></html>'


Saludos,

-- luismiguel (@lmorillas)

> import re
>
> value u'Camión'
>
> value = re.sub(r'\xe1', "&aacute;", value)
> value = re.sub(r'\xe9', "&eacute;", value)
> value = re.sub(r'\xed', "&iacute;", value)
> value = re.sub(r'\xf3', "&oacute;", value)
> value = re.sub(r'\xfa', "&uacute;", value)
> value = re.sub(r'\xf1', "&ntilde;", value)
>
> --
> Si us plau, NO adjunti arxius a les seves respostes. Li preguem que
> integri el text al cos del missatge. Pot respondre usant NetEtiquete
> que li ajudarà a seguir la conversa.
> http://es.wikipedia.org/wiki/Netiquette
>
> Por favor, NO adjunte archivos a sus respuestas. Le rogamos que
> integre el texto en el cuerpo del mensaje. Puede responder usando
> NetEtiquete que le ayudará a seguir la
> conversación.http://es.wikipedia.org/wiki/Netiquette
>
> Please, DO NOT send attachment files with your answers, just copy and
> paste only the text you need to send into the body of your mails.
> Repply using NetEtiquete. http://en.wikipedia.org/wiki/Netiquette
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
_______________________________________________
Python-es mailing list
Python-es en python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

______________________________________________________________________
This email has been scanned by the Email Security System.
______________________________________________________________________


Si no es necesario no imprimas este mensaje. Tu papel es importante

Le invitamos a visitar nuestra página Web: <http://www.tecnatom.es>
INFORMACION RELATIVA A LA L.O.P.D.:
En cumplimiento de la Ley Orgánica 15/1999, de Protección de Datos de Carácter Personal, en el caso de que este mensaje contenga datos de carácter personal se requiere a su destinatario que los utilice exclusivamente para el objeto previamente acordado con TECNATOM S.A., garantice su secreto e integridad, no los ceda a terceras personas y los destruya una vez finalizada la vigencia de la colaboración con TECNATOM, S.A.
Salvo comunicación expresa en contra por parte del destinatario, se considerará la aceptación plena de lo referido en el párrafo anterior.

AVISO DE CONFIDENCIALIDAD:
Este mensaje va dirigido, de manera exclusiva, a su destinatario y contiene información confidencial y sujeta al secreto profesional, cuya divulgación no está permitida por la ley. En caso de haber recibido este mensaje por error, le rogamos que, de forma inmediata, nos lo comunique mediante correo electrónico remitido a nuestra atención y proceda a su eliminación, así como a la de cualquier documento adjunto al mismo. Asimismo, le comunicamos que la distribución, copia o utilización de este mensaje, o de cualquier documento adjunto al mismo, cualquiera que fuera su finalidad, están prohibidas por la ley.


______________________________________________________________________
This email has been scanned by the Email Security System.
______________________________________________________________________
unknown
2012-06-05 20:46:21 UTC
Permalink
El día 5 de junio de 2012 22:29, FERNANDEZ HERNANDEZ GONZALO
<gfernandez en tecnatom.es> escribió:
> Y no se podría hacer algo con maketrans y translate de string?
>
>

Claro que se puede hacer. El que quiera reinventar la rueda, que
traduzca: http://www.w3.org/TR/html4/sgml/entities.html

Saludos,

-- luismiguel  (@lmorillas)



>
> _______________________________________________________________
>
> Gonzalo Fernández Hernández
>
>
>
>
>
> gfernandez en tecnatom.es
>
>
>  Avda. Montes de Oca, 1
>  28703 San Sebastián de los Reyes-Madrid
>  Telf. 91 659 86 00 / 8205
>
>
>
> ________________________________________
> De: python-es-bounces+gfernandez=tecnatom.es en python.org [python-es-bounces+gfernandez=tecnatom.es en python.org] En nombre de Luis Miguel Morillas [morillas en gmail.com]
> Enviado el: martes, 05 de junio de 2012 20:29
> Para: La lista de python en castellano
> Asunto: Re: [Python-es] Convertir utf8 a html entities
>
> El día 5 de junio de 2012 13:53, Raimon Esteve
> <raimonesteve en gmail.com> escribió:
>> Hola,
>>
>> he leido de todo y nada me ha gustado. Como convertís un string utf8 a
>> un string con carácteres html? o sea, que los accentos se transformen
>> a codificación html?
>>
>> En este pequeño código, convertimos á é í ó ú ñ -> a htm entities.
>> Pero falta mayúsculas, ç (catalán), ....
>>
>
> Yo uso un parser de xml/html y un writer para HTML
>
>>>> from amara.bindery import html
>>>> from amara.writers import lookup
>>>> HTML_W = lookup("html")
>>>> doc = html.parse('<p>Caña áéíóú ç</p>')
>>>> doc.xml_encode(HTML_W)
>  '<html><head></head><body><p>Ca&ntilde;a
> &aacute;&eacute;&iacute;&oacute;&uacute; &ccedil;</p></body></html>'
>
>
> Saludos,
>
> -- luismiguel  (@lmorillas)
>
>> import re
>>
>> value u'Camión'
>>
>> value = re.sub(r'\xe1', "&aacute;", value)
>> value = re.sub(r'\xe9', "&eacute;", value)
>> value = re.sub(r'\xed', "&iacute;", value)
>> value = re.sub(r'\xf3', "&oacute;", value)
>> value = re.sub(r'\xfa', "&uacute;", value)
>> value = re.sub(r'\xf1', "&ntilde;", value)
>>
>> --
>> Si us plau, NO adjunti arxius a les seves respostes. Li preguem que
>> integri el text al cos del missatge. Pot respondre usant NetEtiquete
>> que li ajudarà a seguir la conversa.
>> http://es.wikipedia.org/wiki/Netiquette
>>
>> Por favor, NO adjunte archivos a sus respuestas. Le rogamos que
>> integre el texto en el cuerpo del mensaje. Puede responder usando
>> NetEtiquete que le ayudará a seguir la
>> conversación.http://es.wikipedia.org/wiki/Netiquette
>>
>> Please, DO NOT send attachment files with your answers, just copy and
>> paste only the text you need to send into the body of your mails.
>> Repply using NetEtiquete. http://en.wikipedia.org/wiki/Netiquette
>> _______________________________________________
>> Python-es mailing list
>> Python-es en python.org
>> http://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
> ______________________________________________________________________
> This email has been scanned by the Email Security System.
> ______________________________________________________________________
>
>
> Si no es necesario no imprimas este mensaje. Tu papel es importante
>
> Le invitamos a visitar nuestra página Web: <http://www.tecnatom.es>
> INFORMACION RELATIVA A LA L.O.P.D.:
> En cumplimiento de la Ley Orgánica 15/1999, de Protección de Datos de Carácter Personal, en el caso de que este mensaje contenga datos de carácter personal se requiere a su destinatario que los utilice exclusivamente para el objeto previamente acordado con TECNATOM S.A., garantice su secreto e integridad, no los ceda a terceras personas y los destruya una vez finalizada la vigencia de la colaboración con TECNATOM, S.A.
> Salvo comunicación expresa en contra por parte del destinatario, se considerará la aceptación plena de lo referido en el párrafo anterior.
>
> AVISO DE CONFIDENCIALIDAD:
> Este mensaje va dirigido, de manera exclusiva, a su destinatario y contiene información confidencial y sujeta al secreto profesional, cuya divulgación no está permitida por la ley. En caso de haber recibido este mensaje por error, le rogamos que, de forma inmediata, nos lo comunique mediante correo electrónico remitido a nuestra atención y proceda a su eliminación, así como a la de cualquier documento adjunto al mismo. Asimismo, le comunicamos que la distribución, copia o utilización de este mensaje, o de cualquier documento adjunto al mismo, cualquiera que fuera su finalidad, están prohibidas por la ley.
>
>
> ______________________________________________________________________
> This email has been scanned by the Email Security System.
> ______________________________________________________________________
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
unknown
2012-06-06 07:09:57 UTC
Permalink
Estaba pensando en algo así (basándome en el mensaje de Chema):

from html.entities import codepoint2name

u2n = dict((chr(k),"&{0};".format(v)) for (k,v) in codepoint2name.items())

transformation = str.maketrans(u2n)
result = "áéíóú<>".translate(transformation)
print(result)

PD: Perdonad mi python 3




_______________________________________________________________

Gonzalo Fernández Hernández





gfernandez en tecnatom.es


Avda. Montes de Oca, 1
28703 San Sebastián de los Reyes-Madrid
Telf. 91 659 86 00 / 8205



-----Mensaje original-----
De: python-es-bounces+gfernandez=tecnatom.es en python.org [mailto:python-es-bounces+gfernandez=tecnatom.es en python.org] En nombre de Luis Miguel Morillas
Enviado el: martes, 05 de junio de 2012 22:46
Para: La lista de python en castellano
Asunto: Re: [Python-es] Convertir utf8 a html entities

El día 5 de junio de 2012 22:29, FERNANDEZ HERNANDEZ GONZALO
<gfernandez en tecnatom.es> escribió:
> Y no se podría hacer algo con maketrans y translate de string?
>
>

Claro que se puede hacer. El que quiera reinventar la rueda, que
traduzca: http://www.w3.org/TR/html4/sgml/entities.html

Saludos,

-- luismiguel (@lmorillas)



>
> _______________________________________________________________
>
> Gonzalo Fernández Hernández
>
>
>
>
>
> gfernandez en tecnatom.es
>
>
> Avda. Montes de Oca, 1
> 28703 San Sebastián de los Reyes-Madrid
> Telf. 91 659 86 00 / 8205
>
>
>
> ________________________________________
> De: python-es-bounces+gfernandez=tecnatom.es en python.org [python-es-bounces+gfernandez=tecnatom.es en python.org] En nombre de Luis Miguel Morillas [morillas en gmail.com]
> Enviado el: martes, 05 de junio de 2012 20:29
> Para: La lista de python en castellano
> Asunto: Re: [Python-es] Convertir utf8 a html entities
>
> El día 5 de junio de 2012 13:53, Raimon Esteve
> <raimonesteve en gmail.com> escribió:
>> Hola,
>>
>> he leido de todo y nada me ha gustado. Como convertís un string utf8 a
>> un string con carácteres html? o sea, que los accentos se transformen
>> a codificación html?
>>
>> En este pequeño código, convertimos á é í ó ú ñ -> a htm entities.
>> Pero falta mayúsculas, ç (catalán), ....
>>
>
> Yo uso un parser de xml/html y un writer para HTML
>
>>>> from amara.bindery import html
>>>> from amara.writers import lookup
>>>> HTML_W = lookup("html")
>>>> doc = html.parse('<p>Caña áéíóú ç</p>')
>>>> doc.xml_encode(HTML_W)
> '<html><head></head><body><p>Ca&ntilde;a
> &aacute;&eacute;&iacute;&oacute;&uacute; &ccedil;</p></body></html>'
>
>
> Saludos,
>
> -- luismiguel (@lmorillas)
>
>> import re
>>
>> value u'Camión'
>>
>> value = re.sub(r'\xe1', "&aacute;", value)
>> value = re.sub(r'\xe9', "&eacute;", value)
>> value = re.sub(r'\xed', "&iacute;", value)
>> value = re.sub(r'\xf3', "&oacute;", value)
>> value = re.sub(r'\xfa', "&uacute;", value)
>> value = re.sub(r'\xf1', "&ntilde;", value)
>>
>> --
>> Si us plau, NO adjunti arxius a les seves respostes. Li preguem que
>> integri el text al cos del missatge. Pot respondre usant NetEtiquete
>> que li ajudarà a seguir la conversa.
>> http://es.wikipedia.org/wiki/Netiquette
>>
>> Por favor, NO adjunte archivos a sus respuestas. Le rogamos que
>> integre el texto en el cuerpo del mensaje. Puede responder usando
>> NetEtiquete que le ayudará a seguir la
>> conversación.http://es.wikipedia.org/wiki/Netiquette
>>
>> Please, DO NOT send attachment files with your answers, just copy and
>> paste only the text you need to send into the body of your mails.
>> Repply using NetEtiquete. http://en.wikipedia.org/wiki/Netiquette
>> _______________________________________________
>> Python-es mailing list
>> Python-es en python.org
>> http://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
> ______________________________________________________________________
> This email has been scanned by the Email Security System.
> ______________________________________________________________________
>
>
> Si no es necesario no imprimas este mensaje. Tu papel es importante
>
> Le invitamos a visitar nuestra página Web: <http://www.tecnatom.es>
> INFORMACION RELATIVA A LA L.O.P.D.:
> En cumplimiento de la Ley Orgánica 15/1999, de Protección de Datos de Carácter Personal, en el caso de que este mensaje contenga datos de carácter personal se requiere a su destinatario que los utilice exclusivamente para el objeto previamente acordado con TECNATOM S.A., garantice su secreto e integridad, no los ceda a terceras personas y los destruya una vez finalizada la vigencia de la colaboración con TECNATOM, S.A.
> Salvo comunicación expresa en contra por parte del destinatario, se considerará la aceptación plena de lo referido en el párrafo anterior.
>
> AVISO DE CONFIDENCIALIDAD:
> Este mensaje va dirigido, de manera exclusiva, a su destinatario y contiene información confidencial y sujeta al secreto profesional, cuya divulgación no está permitida por la ley. En caso de haber recibido este mensaje por error, le rogamos que, de forma inmediata, nos lo comunique mediante correo electrónico remitido a nuestra atención y proceda a su eliminación, así como a la de cualquier documento adjunto al mismo. Asimismo, le comunicamos que la distribución, copia o utilización de este mensaje, o de cualquier documento adjunto al mismo, cualquiera que fuera su finalidad, están prohibidas por la ley.
>
>
> ______________________________________________________________________
> This email has been scanned by the Email Security System.
> ______________________________________________________________________
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
_______________________________________________
Python-es mailing list
Python-es en python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

______________________________________________________________________
This email has been scanned by the Email Security System.
______________________________________________________________________


Si no es necesario no imprimas este mensaje. Tu papel es importante

Le invitamos a visitar nuestra página Web: <http://www.tecnatom.es>
INFORMACION RELATIVA A LA L.O.P.D.:
En cumplimiento de la Ley Orgánica 15/1999, de Protección de Datos de Carácter Personal, en el caso de que este mensaje contenga datos de carácter personal se requiere a su destinatario que los utilice exclusivamente para el objeto previamente acordado con TECNATOM S.A., garantice su secreto e integridad, no los ceda a terceras personas y los destruya una vez finalizada la vigencia de la colaboración con TECNATOM, S.A.
Salvo comunicación expresa en contra por parte del destinatario, se considerará la aceptación plena de lo referido en el párrafo anterior.

AVISO DE CONFIDENCIALIDAD:
Este mensaje va dirigido, de manera exclusiva, a su destinatario y contiene información confidencial y sujeta al secreto profesional, cuya divulgación no está permitida por la ley. En caso de haber recibido este mensaje por error, le rogamos que, de forma inmediata, nos lo comunique mediante correo electrónico remitido a nuestra atención y proceda a su eliminación, así como a la de cualquier documento adjunto al mismo. Asimismo, le comunicamos que la distribución, copia o utilización de este mensaje, o de cualquier documento adjunto al mismo, cualquiera que fuera su finalidad, están prohibidas por la ley.


______________________________________________________________________
This email has been scanned by the Email Security System.
______________________________________________________________________
unknown
2012-06-06 07:25:02 UTC
Permalink
Acabo de ver:

http://docs.python.org/release/3.1.5/library/xml.sax.utils.html





_______________________________________________________________

Gonzalo Fernández Hernández





gfernandez en tecnatom.es


Avda. Montes de Oca, 1
28703 San Sebastián de los Reyes-Madrid
Telf. 91 659 86 00 / 8205



-----Mensaje original-----
De: python-es-bounces+gfernandez=tecnatom.es en python.org [mailto:python-es-bounces+gfernandez=tecnatom.es en python.org] En nombre de FERNANDEZ HERNANDEZ GONZALO
Enviado el: miércoles, 06 de junio de 2012 9:10
Para: La lista de python en castellano
Asunto: Re: [Python-es] Convertir utf8 a html entities

Estaba pensando en algo así (basándome en el mensaje de Chema):

from html.entities import codepoint2name

u2n = dict((chr(k),"&{0};".format(v)) for (k,v) in codepoint2name.items())

transformation = str.maketrans(u2n)
result = "áéíóú<>".translate(transformation)
print(result)

PD: Perdonad mi python 3




_______________________________________________________________

Gonzalo Fernández Hernández





gfernandez en tecnatom.es


Avda. Montes de Oca, 1
28703 San Sebastián de los Reyes-Madrid
Telf. 91 659 86 00 / 8205



-----Mensaje original-----
De: python-es-bounces+gfernandez=tecnatom.es en python.org [mailto:python-es-bounces+gfernandez=tecnatom.es en python.org] En nombre de Luis Miguel Morillas
Enviado el: martes, 05 de junio de 2012 22:46
Para: La lista de python en castellano
Asunto: Re: [Python-es] Convertir utf8 a html entities

El día 5 de junio de 2012 22:29, FERNANDEZ HERNANDEZ GONZALO
<gfernandez en tecnatom.es> escribió:
> Y no se podría hacer algo con maketrans y translate de string?
>
>

Claro que se puede hacer. El que quiera reinventar la rueda, que
traduzca: http://www.w3.org/TR/html4/sgml/entities.html

Saludos,

-- luismiguel (@lmorillas)



>
> _______________________________________________________________
>
> Gonzalo Fernández Hernández
>
>
>
>
>
> gfernandez en tecnatom.es
>
>
> Avda. Montes de Oca, 1
> 28703 San Sebastián de los Reyes-Madrid
> Telf. 91 659 86 00 / 8205
>
>
>
> ________________________________________
> De: python-es-bounces+gfernandez=tecnatom.es en python.org [python-es-bounces+gfernandez=tecnatom.es en python.org] En nombre de Luis Miguel Morillas [morillas en gmail.com]
> Enviado el: martes, 05 de junio de 2012 20:29
> Para: La lista de python en castellano
> Asunto: Re: [Python-es] Convertir utf8 a html entities
>
> El día 5 de junio de 2012 13:53, Raimon Esteve
> <raimonesteve en gmail.com> escribió:
>> Hola,
>>
>> he leido de todo y nada me ha gustado. Como convertís un string utf8 a
>> un string con carácteres html? o sea, que los accentos se transformen
>> a codificación html?
>>
>> En este pequeño código, convertimos á é í ó ú ñ -> a htm entities.
>> Pero falta mayúsculas, ç (catalán), ....
>>
>
> Yo uso un parser de xml/html y un writer para HTML
>
>>>> from amara.bindery import html
>>>> from amara.writers import lookup
>>>> HTML_W = lookup("html")
>>>> doc = html.parse('<p>Caña áéíóú ç</p>')
>>>> doc.xml_encode(HTML_W)
> '<html><head></head><body><p>Ca&ntilde;a
> &aacute;&eacute;&iacute;&oacute;&uacute; &ccedil;</p></body></html>'
>
>
> Saludos,
>
> -- luismiguel (@lmorillas)
>
>> import re
>>
>> value u'Camión'
>>
>> value = re.sub(r'\xe1', "&aacute;", value)
>> value = re.sub(r'\xe9', "&eacute;", value)
>> value = re.sub(r'\xed', "&iacute;", value)
>> value = re.sub(r'\xf3', "&oacute;", value)
>> value = re.sub(r'\xfa', "&uacute;", value)
>> value = re.sub(r'\xf1', "&ntilde;", value)
>>
>> --
>> Si us plau, NO adjunti arxius a les seves respostes. Li preguem que
>> integri el text al cos del missatge. Pot respondre usant NetEtiquete
>> que li ajudarà a seguir la conversa.
>> http://es.wikipedia.org/wiki/Netiquette
>>
>> Por favor, NO adjunte archivos a sus respuestas. Le rogamos que
>> integre el texto en el cuerpo del mensaje. Puede responder usando
>> NetEtiquete que le ayudará a seguir la
>> conversación.http://es.wikipedia.org/wiki/Netiquette
>>
>> Please, DO NOT send attachment files with your answers, just copy and
>> paste only the text you need to send into the body of your mails.
>> Repply using NetEtiquete. http://en.wikipedia.org/wiki/Netiquette
>> _______________________________________________
>> Python-es mailing list
>> Python-es en python.org
>> http://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
> ______________________________________________________________________
> This email has been scanned by the Email Security System.
> ______________________________________________________________________
>
>
> Si no es necesario no imprimas este mensaje. Tu papel es importante
>
> Le invitamos a visitar nuestra página Web: <http://www.tecnatom.es>
> INFORMACION RELATIVA A LA L.O.P.D.:
> En cumplimiento de la Ley Orgánica 15/1999, de Protección de Datos de Carácter Personal, en el caso de que este mensaje contenga datos de carácter personal se requiere a su destinatario que los utilice exclusivamente para el objeto previamente acordado con TECNATOM S.A., garantice su secreto e integridad, no los ceda a terceras personas y los destruya una vez finalizada la vigencia de la colaboración con TECNATOM, S.A.
> Salvo comunicación expresa en contra por parte del destinatario, se considerará la aceptación plena de lo referido en el párrafo anterior.
>
> AVISO DE CONFIDENCIALIDAD:
> Este mensaje va dirigido, de manera exclusiva, a su destinatario y contiene información confidencial y sujeta al secreto profesional, cuya divulgación no está permitida por la ley. En caso de haber recibido este mensaje por error, le rogamos que, de forma inmediata, nos lo comunique mediante correo electrónico remitido a nuestra atención y proceda a su eliminación, así como a la de cualquier documento adjunto al mismo. Asimismo, le comunicamos que la distribución, copia o utilización de este mensaje, o de cualquier documento adjunto al mismo, cualquiera que fuera su finalidad, están prohibidas por la ley.
>
>
> ______________________________________________________________________
> This email has been scanned by the Email Security System.
> ______________________________________________________________________
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
_______________________________________________
Python-es mailing list
Python-es en python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

______________________________________________________________________
This email has been scanned by the Email Security System.
______________________________________________________________________


Si no es necesario no imprimas este mensaje. Tu papel es importante

Le invitamos a visitar nuestra página Web: <http://www.tecnatom.es>
INFORMACION RELATIVA A LA L.O.P.D.:
En cumplimiento de la Ley Orgánica 15/1999, de Protección de Datos de Carácter Personal, en el caso de que este mensaje contenga datos de carácter personal se requiere a su destinatario que los utilice exclusivamente para el objeto previamente acordado con TECNATOM S.A., garantice su secreto e integridad, no los ceda a terceras personas y los destruya una vez finalizada la vigencia de la colaboración con TECNATOM, S.A.
Salvo comunicación expresa en contra por parte del destinatario, se considerará la aceptación plena de lo referido en el párrafo anterior.

AVISO DE CONFIDENCIALIDAD:
Este mensaje va dirigido, de manera exclusiva, a su destinatario y contiene información confidencial y sujeta al secreto profesional, cuya divulgación no está permitida por la ley. En caso de haber recibido este mensaje por error, le rogamos que, de forma inmediata, nos lo comunique mediante correo electrónico remitido a nuestra atención y proceda a su eliminación, así como a la de cualquier documento adjunto al mismo. Asimismo, le comunicamos que la distribución, copia o utilización de este mensaje, o de cualquier documento adjunto al mismo, cualquiera que fuera su finalidad, están prohibidas por la ley.


______________________________________________________________________
This email has been scanned by the Email Security System.
______________________________________________________________________
_______________________________________________
Python-es mailing list
Python-es en python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

______________________________________________________________________
This email has been scanned by the Email Security System.
______________________________________________________________________


Si no es necesario no imprimas este mensaje. Tu papel es importante

Le invitamos a visitar nuestra página Web: <http://www.tecnatom.es>
INFORMACION RELATIVA A LA L.O.P.D.:
En cumplimiento de la Ley Orgánica 15/1999, de Protección de Datos de Carácter Personal, en el caso de que este mensaje contenga datos de carácter personal se requiere a su destinatario que los utilice exclusivamente para el objeto previamente acordado con TECNATOM S.A., garantice su secreto e integridad, no los ceda a terceras personas y los destruya una vez finalizada la vigencia de la colaboración con TECNATOM, S.A.
Salvo comunicación expresa en contra por parte del destinatario, se considerará la aceptación plena de lo referido en el párrafo anterior.

AVISO DE CONFIDENCIALIDAD:
Este mensaje va dirigido, de manera exclusiva, a su destinatario y contiene información confidencial y sujeta al secreto profesional, cuya divulgación no está permitida por la ley. En caso de haber recibido este mensaje por error, le rogamos que, de forma inmediata, nos lo comunique mediante correo electrónico remitido a nuestra atención y proceda a su eliminación, así como a la de cualquier documento adjunto al mismo. Asimismo, le comunicamos que la distribución, copia o utilización de este mensaje, o de cualquier documento adjunto al mismo, cualquiera que fuera su finalidad, están prohibidas por la ley.


______________________________________________________________________
This email has been scanned by the Email Security System.
______________________________________________________________________
unknown
2012-06-06 18:02:26 UTC
Permalink
Bueno ¿y el ganador es ......?

>>> from htmlentitydefs import codepoint2name
>>> str = u'Això és un cançò'
>>> ''.join([ord(c) in codepoint2name and "&%s;" % codepoint2name[ord(c)] or c for c in str])
u'Aix&ograve; &eacute;s un can&ccedil;&ograve;'

Lo dejamos así, Almenos ha quedado compacto ;)

Saludos.

--
Si us plau, NO adjunti arxius a les seves respostes. Li preguem que
integri el text al cos del missatge. Pot respondre usant NetEtiquete
que li ajudarà a seguir la conversa.
http://es.wikipedia.org/wiki/Netiquette

Por favor, NO adjunte archivos a sus respuestas. Le rogamos que
integre el texto en el cuerpo del mensaje. Puede responder usando
NetEtiquete que le ayudará a seguir la
conversación.http://es.wikipedia.org/wiki/Netiquette

Please, DO NOT send attachment files with your answers, just copy and
paste only the text you need to send into the body of your mails.
Repply using NetEtiquete. http://en.wikipedia.org/wiki/Netiquette
unknown
2012-06-07 01:42:55 UTC
Permalink
El 2012/6/6 Raimon Esteve <raimonesteve en gmail.com> escribió:
> Bueno ¿y el ganador es ......?
>
>>>> from htmlentitydefs import codepoint2name
>>>> str = u'Això és un cançò'
>>>> ''.join([ord(c) in codepoint2name and "&%s;" % codepoint2name[ord(c)] or c for c in str])
> u'Aix&ograve; &eacute;s un can&ccedil;&ograve;'
>
> Lo dejamos así, Almenos ha quedado compacto ;)

Pues aún se puede compactar más usando "generadores" (y más eficiente):

''.join(ord(c) in codepoint2name and "&%s;" % codepoint2name[ord(c)]
or c for c in str)

..aún más usando el operador ternario:

''.join("&%s;"%codepoint2name[ord(c)] if ord(c) in codepoint2name else
c for c in str)


A pesar de todo, prefiero que sea legible a costa de más líneas:

def fmt(c):
r=codepoint2name.get(ord(c),c)
return r if len(r)==1 else "&"+r+";"

print ''.join(fmt(c) for c in s)



--
Hyperreals *R: http://ch3m4.org/blog
Quarks, bits y otras criaturas infinitesimales
Loading...