Estoy comenzando con Perl y con CGI. Tengo un programa en Perl cuya salida en HTML no me imprime en caracteres utf8. Os dejo el código HTML y el código CGI.
Primero el html (prueba.html):
Using html4strict Syntax Highlighting
- <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
- <html>
- <head>
- <title>Prueba de CGI</title>
- </head>
- <body>
- <p>Pregunta lo que quieras saber</p>
- <form method="POST" action="http://localhost/cgi-bin/prueba.cgi">
- <p><input type="text" name="consulta" size=36><input type="submit" value="Enviar"></p>
- </form>
- </body>
- </html>
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
Ahora el programa CGI (prueba.cgi)
Using perl Syntax Highlighting
- #!/usr/bin/perl
- use CGI;
- binmode STDOUT, ":encoding(ISO-8859-1)";
- # almacenamos el contenido de la variable POST en $buffer
- read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
- ($campo, $consulta) = split(/=/, $buffer);
- print "Content-type: text/html\n\n";
- #print "<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">\n";
- print "<html><head><title>Mensaje de bienvenida</title></head>\n";
- print "<body>\n";
- print "<h1>Bienvenido</h1>\n";
- print "Tu pregunta es $consulta \n";
- print "</body></html>\n";
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
EL caso es que si en la entrada del archivo HTML pongo "¿Quién fue Nikola Tesla?", en el HTML de salida pone "Tu pregunta es %BFqui%E9n+fue+Nikola+Tesla%3F"
¿Cómo se puede poner para que la salida sea "¿Quién fue Nikola Tesla?"
Muchas gracias a todos por vuestra ayuda. Me parece un foro muy interesante.
SalU2.