Foros del Web » Programando para Internet » PHP »

Caracteres especiales

Estas en el tema de Caracteres especiales en el foro de PHP en Foros del Web. Buenas noches de nuevo amigos, mi pregunta la llevo cargando hace mucho y ya quiero darle una solución, resulta que cada vez que hago algo ...
  #1 (permalink)  
Antiguo 31/03/2014, 21:57
Avatar de acumulador  
Fecha de Ingreso: junio-2008
Ubicación: Medellin - Antiquia
Mensajes: 459
Antigüedad: 15 años, 9 meses
Puntos: 7
Caracteres especiales

Buenas noches de nuevo amigos, mi pregunta la llevo cargando hace mucho y ya quiero darle una solución, resulta que cada vez que hago algo con PHP y mySQL tengo problemas al guardar y recuperar los datos en y desde la base de datos, me explico cuando los datos utilizan caracteres especiales como tildes o ñ siempre me da trae desde la base de datos caracteres muy raros que no se comprenden, he probado muchas opciones y no se si me puedan ayudar a dar solución definitiva a esto pues cada vez que hago algo sufro por lo mismo. De antemano muchas gracias.
__________________
-----------------------------------------------------------------------------
Yo vivo de preguntar, saber no puede ser lujo...
  #2 (permalink)  
Antiguo 01/04/2014, 00:39
Avatar de temerariomalaga  
Fecha de Ingreso: marzo-2013
Ubicación: Londres
Mensajes: 156
Antigüedad: 11 años
Puntos: 9
Respuesta: Caracteres especiales

Si usas mysqli asignale el charset de la siguiente forma al realizar la conexión mysql
Código PHP:
Ver original
  1. $mysqli->set_charset("utf-8");
Por si acaso también declara el charset en la cabecera del archivo php donde tengas el formulario.
Código HTML:
Ver original
  1. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
__________________
Málaga Club de Fútbol: Memoria, Compromiso, Fe
  #3 (permalink)  
Antiguo 01/04/2014, 06:07
Avatar de jheckson  
Fecha de Ingreso: febrero-2011
Ubicación: $VE->Aragua['Maracay']
Mensajes: 109
Antigüedad: 13 años, 1 mes
Puntos: 8
Respuesta: Caracteres especiales

Yo utlizo $mysqli->set_charset("latin1");
No estoy seguro si hay diferencia alguna, pero se que que con esta no tengo problemas con los acentos, e incluso toma en cuenta las busquedas, podria decirse que arbol = árbol
__________________
Ayudar a otros, es una de las mejores formas de aprender y ayudarse a si mismo! =)

>[Jheck]<
  #4 (permalink)  
Antiguo 01/04/2014, 06:19
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 3 meses
Puntos: 2658
Respuesta: Caracteres especiales

Lo usual es maejarse en UTF8, no Latin1 (Ver uTF8), entre otras cosas porque es el formato esperado para volcado de bases en MySQL (backups), por ejemplo.
Latn1 es limitado en alcance de representación, aunque funcine para tu caso, y muchas veces trae probleas por conflictos con las webs (Latin1)
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 01/04/2014, 06:33
 
Fecha de Ingreso: diciembre-2009
Mensajes: 15
Antigüedad: 14 años, 2 meses
Puntos: 2
Respuesta: Caracteres especiales

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Lo usual es maejarse en UTF8, no Latin1 (Ver [URL="http://es.wikipedia.org/wiki/UTF-8"]uTF8[/URL]), entre otras cosas porque es el formato esperado para volcado de bases en MySQL (backups), por ejemplo.
Latn1 es limitado en alcance de representación, aunque funcine para tu caso, y muchas veces trae probleas por conflictos con las webs ([URL="http://es.wikipedia.org/wiki/ISO_8859-1"]Latin1[/URL])
La verdad es que esto es un poco falso, no hay ningún problema en usar LATIN1 o cualquier otro charset que te interese, el único inconveniente es que tienes que asegurarte de que siempre usas ese charset, por lo menos en las siguientes partes:
  1. cuando escribes tu código
  2. diciéndole a php qué charset usas
  3. diciéndole a HTTP qué charset usas
  4. asegurándote de que el navegador usa ese charset (con html en el objeto <meta>)
  5. diciéndole a la base de datos qué charset usas

Y no sé si se me escapa algo de las manos. Aunque parezcan abusivas y o tipo hardcoding, estas técnicas las recomiendo para todo tipo de proyectos, ya que nunca puedes estar seguro de qué charset va a usar el sistema si no lo indicas explícitamente, incluso para UTF8.

Etiquetas: caracteres, especiales, mysql, 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 23:14.