En esta edición del quiz, un poco sobre la influencia que tiene la codificación de una página que se envía al cliente.
php:
<?php
$charset = 'utf-8';
/* Comprobación simple del charset: no debe contener caracteres raros */
if ( !empty($_GET['charset']) && preg_match('/^[a-z\d-]+$/i', $_GET['charset']) )
$charset = $_GET['charset'];
header('Content-type:text/html; charset=' . $charset);
?>
<html>
<head>
<title>Test</title>
</head>
<body>
<?php
if ( !empty($_GET['url']) )
echo sprintf('<a href="%s">Enlace</a>', htmlentities($_GET['url']));
?>
</body>
</html>
¿Qué problema o problemas existen en el código mostrado?
Solución
Una alternativa de solución, es la que comenta Francesc, sin embargo la funcion htmlentities no acepta todos los encodings, lo que podría conllevar a que el código mostrado sea vulnerable a ataques XSS, para evitar esto, lo mejor es evitar que el usuario establezca el encoding del documento.