htmlentities(); puede contener hasta 3 parámetros.
En el manual vienen bien explicados los flags y los charset.
htmlentities
Modifiqué algunas cosas como el action y la comprobación del POST ya que de entrada no necesitas pasar un parámetro por URL para que se ejecute. Además no la habías comprobado con isset() y daba error si no existía.
Saludos.
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Pruebas</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="text" name="texto" />
<input type="submit" name="enviar" value="Enviar" />
</form>
<?php
if( isset($_POST['enviar']) ) {
echo 'resultado: '.htmlentities($_POST['texto'], ENT_NOQUOTES, 'UTF-8');
}
?>
</body>
</html>