Foros del Web » Programando para Internet » PHP »

codificacion de caractereres

Estas en el tema de codificacion de caractereres en el foro de PHP en Foros del Web. Hola Espero que me podais ayudar porque esto me tiene un poco perdido. Nunca he tenido muy claro los temas de la codificación de caracteres, ...
  #1 (permalink)  
Antiguo 19/07/2006, 13:37
 
Fecha de Ingreso: diciembre-2003
Mensajes: 213
Antigüedad: 14 años
Puntos: 0
codificacion de caractereres

Hola Espero que me podais ayudar porque esto me tiene un poco perdido.
Nunca he tenido muy claro los temas de la codificación de caracteres, pero esta vez si que no me entero de nada.

La cuestion es que tengo una BBDD creada con codificación UTF-8.

Cuando inserto un registro desde un formulario de mi desarrollo, si escribo algún caracter especial como tildes o la ñ no me lo inserta bien y corta el texto a partir de ese caracter.

Pero si lo inserto lanzando una consulta desde el phpmyadmin no hay ningun problema.

Entonces que hace phpmyadmin para que todo vaya bien??? Que puedo hacer yo???

Gracias de antemano.
  #2 (permalink)  
Antiguo 19/07/2006, 13:39
 
Fecha de Ingreso: diciembre-2003
Mensajes: 213
Antigüedad: 14 años
Puntos: 0
Se me olvidaba. antes todo iba bien y supongo que el problema ha surgido en alguno de los cambios de version que he hecho ya sea de php o de mysql.
La verdad es que no estoy muy seguro de esto, es solo una suposicion.
  #3 (permalink)  
Antiguo 19/07/2006, 13:57
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Interesaría ver tu código.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 20/07/2006, 04:47
 
Fecha de Ingreso: diciembre-2003
Mensajes: 213
Antigüedad: 14 años
Puntos: 0
Hola cluster

Hola Cluster, gracias por haber respondido.

Muy a mi pesar en principio no es una cuestión de un codigo en concreto, ya que el problema afecta a todo un proyecto en el que llevo, lamentablemente, varios años trabajando y muy a mi pesar no consigo terminar de una vez por todas.

Podría ponerte cualquier porcion de código, o inventarme uno ahora mismo, da igual, al final la cuestión es que cualquier dato que recibo de un formulario se inserta mal en mi base de datos si este lleva un caracter especial (tildes, eñes...)

Cualquier sugerencia será bien recibida. Muchas gracias.
  #5 (permalink)  
Antiguo 20/07/2006, 09:25
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Te solicitaba código para ver si realmente estás definiendo alguna cabecera HTTP desde PHP para indicar la codificación concreta que quieres usar .. o en HTML y cabeceras (<meta>) cierta codificación .. e incluso como quedan tus datos en tus BBDD y que codificación tienen estas si las usas.

Tu servidor HTTP por "defecto" (no indicas cual tampoco ..) como servidor HTTP que es, puede "forzar" o asumir cierta codificación si no se le indica otra cosa. Esto suele pasar si envias código PHP sin más HTML que defina la codificación expresamente.

No sé si tienes acceso a tu configuración del servidor HTTP .. pero si la tuvieras y fuese Apache ... revisa en httpd.conf el valor de:

AddDefaultCharset
Debería ser un iso-8859-1

Si compones páginas HTML .. revisa que tengan definido:
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
(en el <head> ...)

Si usas scripts PHP que generan salida directa y no compones HTML standar con la cabecera antes mencionada tendrás que indicarlo expresamente vía header() y su correspondiente cabecera HTTP:

Código PHP:
<?
// al principio de tus scripts .. 
header("Content-Type: text/html; charset=iso-8859-1");
?>
Un buen artículo al respecto de la W3:
http://www.w3.org/International/O-HTTP-charset

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 01:43.