Solución:
Después de muchos golpes de cabeza en la mesa, entiendo un poco mejor el problema que quería publicar para cualquier otra persona que pueda haber tenido este problema.
Si bien el conjunto de caracteres UTF-8 mostrará caracteres especiales en el cliente, el servidor, por otro lado, puede no ser tan complaciente e imprimiría caracteres especiales como à
y è
como �
y �
.
Para asegurarse de que su servidor los imprima correctamente, utilice el ISO-8859-1
juego de caracteres:
<?php
/*Just for your server-side code*/
header('Content-Type: text/html; charset=ISO-8859-1');
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"><!-- Your HTML file can still use UTF-8-->
<title>Untitled Document</title>
</head>
<body>
<?= "àè" ?>
</body>
</html>
Esto se imprimirá correctamente: àè
Editar (4 años después):
Ahora tengo un poco más de comprensión. La razón por la que esto funciona es que se le dice al cliente (navegador), a través de la respuesta header()
, esperar un ISO-8859-1
archivo de texto / html. (Como han mencionado otros, también puede hacer esto actualizando su .ini
o .htaccess
archivos.) Luego, una vez que el navegador comienza a analizar ese archivo dado en el DOM, la salida obedecerá a cualquier <meta charset="">
regla pero mantenga intactos sus caracteres ISO.
En PHP hay una función bastante buena utf8_encode () para solucionar este problema.
echo utf8_encode("Résumé");
//will output Résumé instead of R�sum�
Consulta la página oficial de PHP.
Puede tener una combinación de PHP y HTML en sus archivos PHP … simplemente haga algo como esto …
<?php
$string = htmlentities("Résumé");
?>
<html>
<head></head>
<body>
<p><?= $string ?></p>
</body>
</html>
Eso debería salir Résumé
tal como lo desea.
Si no tiene habilitadas las etiquetas cortas, reemplace el <?= $string ?>
con <?php echo $string; ?>