2

Buenos dias. Tengo una base de datos de 120 registros , es pequeño ,pero tiene error cuando hay tildes , por ejemplo José a José ,como es algo de practica no hay ningun problema pero si fuera algo mas grande , tendria solucion ,ya estando insertada? BD : MYSQL Lenguaje : PHP

Aqui no deseo evitar el problema de utf-8, aquí quiero solucionar el problema al no usar utf-8. Solución : ¿Cómo admitir tildes? PHP-MySQL

  • 1
    este post te puede ayudar. [Mysql tildes error PHP](https://es.stackoverflow.com/questions/133598/c%C3%B3mo-admitir-tildes-php-mysql) – Ares Xander Tolosa Morales Jan 25 '18 at 21:08
  • Tu base de datos la configurastes en base a `utf-8`?, y en tu documento pon la etiqueta `` – Edwin Aquino Jan 25 '18 at 21:09
  • @AresXanderTolosaMorales Gracias! – Francis Yourem Jan 25 '18 at 21:28
  • @Mariano es muy diferente, se puede decir que es duplicado de la misma solución. – Francis Yourem Jan 25 '18 at 22:23
  • @FrancisYourem una pregunta se considera un duplicado de otra cuando tienen la misma solución, independientemente de cuál es la descripción del problema que las origina. – Mariano Jan 25 '18 at 22:35
  • En la respuesta aceptada a la pregunta que @Mariano ha indicado como posible duplicado se indica la solución al problema que planteas: debes revisar la codificación en el origen de los datos (*nivel 0*), en el caso de que los hayas tomado de un archivo de texto para insertar. Y si no es así, la solución estaría en el *nivel 4* (configuración de la base de datos). – A. Cedano Jan 26 '18 at 00:33
  • Discrepo del duplicado, en la pregunta del OP si no entiendo mal, busca migrar los datos existentes, es decir realizar la conversión de los datos a utf8, aparte de cambiar las codificaciones, cosa que no se aborda en la respuesta de @A.Cedano – Xerif Jan 26 '18 at 14:34
  • @Xerif si he entendido bien él dice que los datos se insertaron mal en la base de datos al no usar `utf-8`. En la respuesta de referencia se aborda ese problema diciendo que se debe revisar, en la configuración del editor de texto de donde se tomaron los datos, y usar allí `utf-8`. Si los datos están mal insertados en la tabla no hay otra solución que corregirlos a mano, o volver a insertarlos bien codificados, verificando que en ese caso la BD está configurada a `utf8`. Las dos posibilidades son abordadas en la otra respuesta. – A. Cedano Jan 26 '18 at 14:40
  • @A.Cedano si que se pueden corregir los datos ya insertado, MySQL provee funciones con las que se puede realizar la corrección de los datos insertados que no veo que se aborde en la otra respuesta. Imagina cuando nos encontramos bases de datos antiguas con miles de registros con malas prácticas, seria inviable hacerlo a mano y esto no se aborda en la respuesta dada. – Xerif Jan 26 '18 at 14:45
  • @Xerif no sabía que se podían corregir datos que viven ya en la base de datos mal codificados. Si es así, estoy de acuerdo contigo en que la pregunta se podría desmarcar como duplicada y sería bueno ver una respuesta aplicando esas técnicas que mencionas, las cuales ignoro del todo. Aunque te confieso que soy escéptico en eso, no veo cómo se podría corregir un texto guardado mal codificado, tomando en cuenta que los caracteres de reemplazo no son siempre los mismos. En algunos casos toda la codificación aparece cambiada por el caracter � y muchos otros, no veo cómo arreglar eso en los datos. – A. Cedano Jan 26 '18 at 14:55
  • 1
    @A.Cedano Pues si estaría bien tenerla por SOes, no he visto ninguna en la que se aborde este punto de vista por lo que me he decidido a crearla. [aquí](https://es.stackoverflow.com/questions/134130/c%c3%b3mo-migrar-datos-utf8-mal-insertado-en-mysql) – Xerif Jan 26 '18 at 20:39

2 Answers2

2

El problema que tienes es de codificación de caracteres, te recomiendo utilizar UTF-8.

Del lado de MySQL: cambiar codificación de caracteres de tu tabla

ALTER TABLE $table CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

Del lado de PHP: establecer la cabecera UTF-8.

header('Content-Type: text/html; charset=utf-8');

Del lado de HTML: establecer el meta de UTF-8.

 <meta charset="UTF-8">
dddenis
  • 3,923
  • 4
  • 24
  • 47
1

Intenta colocar esa meta en el index de tu proyecto para que cuando el navegador lo interprete te muestre las tildes.

<head>
    <meta charset="utf-8">

</head>
Alvaro Montoro
  • 48,157
  • 26
  • 100
  • 179
MichelM
  • 11
  • 1