Estoy buscando una forma simple de codificar HTML una cadena/objeto en Perl. Cuantos menos paquetes adicionales se utilicen, mejor.¿Cómo puedo codificar una cadena para HTML?
Respuesta
HTML::Entities es tu amigo aquí.
use HTML::Entities;
my $encoded = encode_entities("foo & bar & <baz>");
¿Qué necesitas para codificar, una cuerda o un objeto? Si solo se trata de una cadena, entonces solo debe preocuparse por los problemas de codificación como UTF-8 y CGI::escape, probablemente sea el truco para usted. Si es un objeto, primero tendrá que serializarlo, lo que abre un nuevo conjunto de problemas, pero es posible que desee considerar JSON -encoding it.
PS. Aunque como no puedo encontrar documentación reciente sobre este método (en realidad se importó desde CGI::Util y está marcado como "interno"), probablemente deba usar escapeHTML() como daxim en su comentario: http://search.cpan.org/perldoc?CGI#AUTOESCAPING_HTML
La función se llama 'escapeHTML'. Enlace interno apropiado: http://search.cpan.org/perldoc?CGI#AUTOESCAPING_HTML – daxim
@daxim: 'CGI :: escape' existe mucho; en realidad está definido en CGI :: Util e importado a CGI propiamente dicho. Si nos fijamos en la fuente, existen algunas diferencias sutiles en la implementación, que lamentablemente no están bien descritas en la documentación. – Ether
De acuerdo. No puedo deshacer la votación porque es demasiado antigua. – daxim
Cuando esto La pregunta fue respondida primero, HTML::Entities fue el módulo que la mayoría de la gente probablemente usó. Es puro Perl y, de forma predeterminada, escapará de los caracteres reservados de HTML ><'"&
y de los caracteres anchos.
Recientemente, HTML::Escape apareció. Tiene tanto XS como Perl puro. Si está utilizando la versión XS, es aproximadamente diez veces más rápido que HTML::Entities. Sin embargo, solo escapa al ><'"&
y no tiene forma de cambiar los valores predeterminados. Esta es la diferencia con la versión XS:
Benchmark: timing 10000 iterations of html_entities, html_escape...
html_entities: 14 wallclock secs (14.09 usr + 0.01 sys = 14.10 CPU) @ 709.22/s (n=10000)
html_escape: 1 wallclock secs (0.68 usr + 0.00 sys = 0.68 CPU) @ 14705.88/s (n=10000)
Y aquí está la lucha justa con las versiones de Perl puros en cada lado:
Benchmark: timing 10000 iterations of html_entities, html_escape...
html_entities: 14 wallclock secs (13.79 usr + 0.01 sys = 13.80 CPU) @ 724.64/s (n=10000)
html_escape: 7 wallclock secs (7.57 usr + 0.01 sys = 7.58 CPU) @ 1319.26/s (n=10000)
puede obtener estos puntos de referencia en Surveyor::Benchmark::HTMLEntities. Explico how I distribute benchmarks usando Surveyor::App.
Dado que 'HTML :: Entities' busca también caracteres anchos, la lucha pura de Perl podría no ser tan justa. Podría ser interesante alterar el código en la versión pura de Perl de 'HTML :: Escape' para incluir los mismos casos bajo su propio algoritmo y ver esa pelea de nuevo. –
- 1. ¿Cómo puedo codificar XML una cadena en Erlang?
- 2. ¿Cómo puedo URL codificar una cadena en Excel VBA?
- 3. Cómo codificar uri una cadena en jsp?
- 4. Cómo codificar HTML para una representación rápida en IE
- 5. Cómo codificar caracteres especiales en contenido html
- 6. cómo codificar el atributo href en HTML
- 7. cómo codificar apóstrofes para una página web
- 8. HTML Codificar en Flex/ActionScript
- 9. Cómo codificar/escapar HTML de una cadena? ¿Hay un built-in?
- 10. codificar una cadena de consulta en I
- 11. Cómo actualizar Vim para codificar con colores nuevos elementos html
- 12. ¿Cómo codificar una cadena URL completa en ASP MVC
- 13. ¿Quién es responsable de codificar una cadena?
- 14. Codificar HTML antes del POST
- 15. ¿Cómo puedo eliminar etiquetas HTML de una cadena ColdFusion?
- 16. ¿Cómo puedo analizar una cadena HTML en Java?
- 17. ¿Cómo puedo pegar HTML en una cadena usando Perl?
- 18. ¿Cómo codificar URL correctamente una cadena en PHP?
- 19. Cómo codificar para multitouch
- 20. Cómo codificar una cadena con Base64 en Android?
- 21. ¿Puedo codificar para iPhone en Vala?
- 22. ¿Cómo puedo obtener XmlSerializer para codificar bools como yes/no?
- 23. ¿Cómo puedo codificar JSON una matriz en VB.NET?
- 24. ¿Cómo puedo codificar una fábrica en Perl y Moose?
- 25. ¿Cómo puedo codificar un monitor en C?
- 26. Encriptar/Codificar una ID en la cadena de URL
- 27. ¿Cómo puedo codificar Android con J2ME?
- 28. ¿Necesita HTML codificar etiquetas de título?
- 29. Cómo codificar datos de imagen dentro de un archivo HTML?
- 30. HTML Cadena para mootools Element
¿Qué quiere decir exactamente con "codificación HTML"? ¿Puedes dar un ejemplo de entrada y la salida deseada? – cjm
¿Qué conjuntos de caracteres/configuraciones regionales debe manejar? – pilcrow