sql >> Base de Datos >  >> RDS >> Mysql

La codificación de caracteres griegos funciona en HTML pero no en PHP

A pesar de que suena realmente extraño que sus datos mysql se emitan correctamente donde las cadenas php fallan en la codificación, la forma en que trataría de resolver su problema sería dividir el problema en pasos que intenten identificar dónde se genera esta codificación incorrecta.

En primer lugar, debe intentar configurar su default_charset a utf-8 dentro del archivo php.ini, que se hace así:

default_charset = "utf-8";

Si no puede hacerlo debido a las restricciones del proveedor, aún puede cambiar el valor en tiempo de ejecución usando la función conjunto_ini función!

¡También querrá asegurarse de que el servidor web esté configurado para generar archivos codificados en utf-8 también! En Apache, esto se puede hacer tanto en httpd.conf como usando los archivos htaccess:

AddDefaultCharset UTF-8

En este punto, si todo falla, aún... intente ir con los encabezados de php y el juego de caracteres html relativo:

<?php header("content-type: text/html;charset=utf-8") ?>
<!doctype>
<html>
    <head>
        <meta charset="utf-8">
    </head>
    <body>
        <?php echo "α β γ δ ε ϝ ϛ ζ η θ ι κ λ μ ν ξ ο π ϟ ϙ ρ σ τ υ φ χ ψ ω ϡ" ?>
    </body>
</html>

Sin embargo, es muy importante que sus archivos se guarden con una codificación adecuada también (utf-8 es casi siempre la mejor opción, ayuda a prevenir muchos problemas). Si guardó archivos con una codificación diferente a utf-8, destrúyalos y cree otros nuevos a partir de su contenido anterior. A veces, los editores no pueden cambiar las codificaciones correctamente una vez que se crea el archivo, aunque notepad ++ generalmente lo hace bien; solo usa converto to no el encode in característica!

Si aún no funciona, aunque espero que ya lo haga, puede consultar otras alternativas de php como mb_detect_encoding , mb_convert_encoding , htmlentities y htmlspecialchars para solucionar el problema!