Foros del Web » Programando para Internet » PHP »

Consejos para guardar acentos y caracteres especiales en sql

Estas en el tema de Consejos para guardar acentos y caracteres especiales en sql en el foro de PHP en Foros del Web. Me gustaría sacar esta duda porque siempre termino con problemas en los acentos o demás caracteres. Si decido guardar datos en utf8_unicode_ci el string debe ...
  #1 (permalink)  
Antiguo 06/02/2014, 18:49
 
Fecha de Ingreso: enero-2006
Mensajes: 199
Antigüedad: 18 años, 3 meses
Puntos: 5
Consejos para guardar acentos y caracteres especiales en sql

Me gustaría sacar esta duda porque siempre termino con problemas en los acentos o demás caracteres.

Si decido guardar datos en utf8_unicode_ci el string debe ir lo mas limpio posible?

Es conveniente pasar el string por htmlentities() antes de guardar en la DB si decido usar latin1_spanish_ci?

porque cuando remplazo acentos en este formato html (htmlentities) a acentos limpios y guardo en utf8_unicode_ci se vizualizan de este modo á, é, ...,

porque cuando guardo acentos limpios (á,é..) en utf8_unicode_ci y lo visualizo en un documento de word, excel, etc se cortan las palabras? ejemplo "educación escolar" por "educaci".

Lo mismo si guardo los acentos en formato html (htmlentities) en utf8_unicode_ci si intento visualizarlo en un pdf estos se ven asi, &aacute,...
  #2 (permalink)  
Antiguo 06/02/2014, 19:47
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Consejos para guardar acentos y caracteres especiales en sql

Realmente no importa qué juego de caracteres decidas usar. En mi caso latin1_spanish_ci siempre me ha funcionado y estoy planeando modificar mis desarrollos para pasarlos a utf8_xxxxx_ci.

Aún no decido si será utf8_unicode_ci, utf8_spanish_ci o algún otro y la única diferencia que hay es los resultados arrojados en búsquedas con LIKE y/o MATCH AGAINST.

Dicho lo anterior, lo único que se requiere para que los acentos y caracteres especiales sean guardados correctamente es que todos tus archivos y fuentes de datos tengan la misma codificación:

1- Archivos PHP, HTML y cualquier otro (como Javascript) que tengan que ver con lectura de datos (desde base de datos o proceso de formularios)

En tu editor o herramienta de desarrollo verifica que cada archivo tenga la codificación elegida

2- Tu base de datos y tablas

No creo que tengas problema para crear/modificar la codificación de tus tablas, pero debes tener en cuenta que los datos existentes tal vez sigan apareciendo como los guardaste y, si es el caso, necesitarías hacer alguna conversión

3- Por último, en tu HTML especifica también la codificación usada

Si trabajas con HTML5, la etiqueta es: <meta charset="aqui_tu_juego_de_caracteres">, si usas otra versión, pregúntale a san google

Haciendo todo lo anterior a conciencia, evitarás el uso de htmlentities y el problema se solucionará al 100%
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: forma, html, optima, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:04.