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.