0

Tengo mi base de datos MYSQL, estaba desarrollando en mi localhost y normal reconoce las tildes, pero cuando lo subí al hosting no reconoce las tildes y muestra un "?" El error se muestra cuando desde mi código PHP/HTML hago un llamado a la base de datos y la tilde se muestra con el (?). Pero no creo que sea error de UTF en el HTML, ya que en el mismo HTML recibo valores de un formulario y sí muestra las tildes del formulario normal. El cotejamiento que tengo es utf8mb4_general_ci, me han recomendado que lo cambie a Ut8_general_ci, UTF8_BIN, utf8_spanish_ci y ninguno funciona. También me dijeron que debí agregar otro cotejamiento al crear la base y que ahora no tiene solución. ¿Cómo puedo arreglar esto por favor? Espero puedan ayudarme. En la misma base de datos los datos se muestra normal, con tilde, el problema es cuando los llamo desde PHP, ahí se muestra con el "?", en HTML sí tengo el utf8, como dije, en localhost todo funciona normal, el problema pasa al subir al hosting.

Head en HTML:

<html> <head><meta charset="utf-8"/>    <?php include ('head.html');?>
</head> <body>

Tambien intenté con el código $mysqli->query("SET NAMES utf8"); pero me lanza el error: Parse error: syntax error, unexpected 'NAMES' (T_STRING), expecting ')'

diego medina
  • 163
  • 8
  • Tu pregunta no es clara. Primeramente es importante que revises si en la base de datos misma los datos aparecen con `?` o no. Si allí aparecen con acento entonces no hay problema, sólo tienes que configurar el entorno PHP/HTML para que los datos se muestren con acento. Ahora, si en la BD te aparecen mal es evidente que tienes que revisar el tipo de codificación y cambiarlo por uno adecuado. Generalmente, para BD con datos en español es mejor usar `utf8_spanish_ci`. Antes de cualquier cambio en la BD debes hacer una copia de seguridad. – A. Cedano Jan 21 '20 at 20:09
  • Tu pregunta es muy abierta, pon más detalles en orden de darte una mejor ayuda – Fernando Torres Jan 21 '20 at 20:20
  • Prueba con `$mysqli->query("SET NAMES utf8");`. [Documentación aquí](https://www.php.net/manual/es/mysqlinfo.concepts.charset.php) – DjCrazy Jan 21 '20 at 21:29
  • Ya actualicé la pregunta. Ya probé ocn el código que mencionas DjCraze y me lanza error. – diego medina Jan 21 '20 at 21:46

1 Answers1

1

Ya logré resolverlo, justo después de conectarme a la base de datos tenía que poner el siguiente código:

$mysqli->set_charset("utf8");
diego medina
  • 163
  • 8