Estoy ayudando a un cliente a convertir su sitio de boletines de archivos planos de Perl de ISO-8859-1 a Unicode.Lista de comprobación para ir por Unicode con Perl
Dado que esta es mi primera vez, me gustaría saber si la siguiente "lista de verificación" está completa. Todo funciona bien en las pruebas, pero me puede estar perdiendo algo que solo ocurriría en raras ocasiones.
Esto es lo que he hecho hasta ahora (perdóname por sólo incluyendo "Resumen" ejemplos de código):
de files hechas son siempre leídos y escritos en UTF-8:
use open ':utf8';
Hecho de entrada CGI seguro es recibido como UTF-8 (el sitio no está utilizando CGI.pm):
s{%([a-fA-F0-9]{2})}{ pack ("C", hex ($1)) }eg; # Kept from existing code s{%u([0-9A-F]{4})}{ pack ('U*', hex ($1)) }eg; # Added utf8::decode $_;
Hecho texto seguro se imprime como UTF-8: navegadores seguro
binmode STDOUT, ':utf8';
Hecho interpretan el contenido de mi como UTF-8:
Content-Type: text/html; charset=UTF-8 <meta http-equiv="content-type" content="text/html;charset=UTF-8">
formas seguras Hecho envían UTF-8 (probablemente no es necesario ya siempre y cuando la página de codificación se establece):
accept-charset="UTF-8"
no creo que sea necesario lo siguiente, ya que el texto en línea (menús, títulos, etc.) es sólo en ASCII:
use utf8;
hace esto parece razonable, o me estoy perdiendo algo?
EDITAR: Probablemente también debería mencionar que ejecutaremos un lote por única vez para leer todos los archivos de datos de texto existentes y guardarlos en codificación UTF-8.
No menciona qué utilizará para el "lote de un solo uso" para convertir los datos existentes. El problema que preveo es que algunos de los archivos existentes no contendrán ISO-8859-1, pero en realidad tendrán datos de CP1252 y algunos incluso pueden tener UTF-8. Este es exactamente el problema que [Encoding :: FixLatin] (http://search.cpan.org/dist/Encoding-FixLatin/) se escribió para resolverlo, por lo que puede resultarle útil. –