Avatar ·

UTF-8 en todo el camino: cómo configurar PHP, MySQL y el servidor web para trabajar correctamente con cirílico y Unicode

¡Hola a todos! Soy un desarrollador PHP principiante y ya me estoy volviendo loco con los problemas de codificación. El sitio está escrito en PHP, la base de datos es MySQL, el servidor es Apache. Todo parece funcionar, pero cuando un usuario ingresa letras rusas en un formulario, comienza el infierno: en la base de datos se guardan caracteres extraños como «РџСЂРёРІРµС‚», y al mostrarlos en la página aparecen signos de interrogación o cuadrados vacíos. Intenté poner `` en el encabezado HTML, pero no ayudó. Intenté escribir `header('Content-Type: text/html; charset=utf-8');` en PHP, tampoco fue una solución definitiva. En MySQL, las tablas tienen `utf8_general_ci`, pero los datos siguen corrompiéndose. Aquí hay un ejemplo de mi código: ```php query("INSERT INTO users (name) VALUES ('$name')"); // Mostrar $result = $db->query("SELECT name FROM users"); while ($row = $result->fetch_assoc()) { echo $row['name']; } ?>