Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] problema con caracteres especiales

Estas en el tema de problema con caracteres especiales en el foro de PHP en Foros del Web. hola amigos, tengo un problema en codeigniter: tengo un formulario ajax que envia datos por POST, el problema está en que si por ejemplo envio ...
  #1 (permalink)  
Antiguo 13/10/2011, 18:15
Avatar de danichalay  
Fecha de Ingreso: julio-2009
Mensajes: 35
Antigüedad: 14 años, 9 meses
Puntos: 1
problema con caracteres especiales

hola amigos, tengo un problema en codeigniter:
tengo un formulario ajax que envia datos por POST, el problema está en que si por ejemplo envio la palabra "bebé" (con tilde en la E), cuando leo la variable $_POST, esta me devuelve "beb", codeigniter elimina los caracteres especiales como las vocales acentuadas, en este caso "é".

¿como podria solucionar esto?
  #2 (permalink)  
Antiguo 14/10/2011, 01:37
Avatar de mko
mko
 
Fecha de Ingreso: agosto-2010
Ubicación: la vida es un riesgo
Mensajes: 101
Antigüedad: 13 años, 8 meses
Puntos: 14
Respuesta: problema con caracteres especiales

usa esto cuanod recibas los datos por post con ajax

Código PHP:
$pa=utf8_decode($_POST['paterno']); 

y luego simplemente realizas la insert

si el problema son los acentos y las ñ al mostrarlas en tu navegador verifica que tu header tengas esto
Código HTML:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
si haces una consulta con ajax po esto antes en la primera linea

Código PHP:

header
('Content-Type: text/xml; charset=ISO-8859-1'); 
bueno son varias la formas prueba aver que tal

[email protected]
__________________
cuando no esperas nada y obtienes todo eso es destino
  #3 (permalink)  
Antiguo 16/10/2011, 10:25
Avatar de danichalay  
Fecha de Ingreso: julio-2009
Mensajes: 35
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: problema con caracteres especiales

hola Mko, muchas gracias por tu respuesta

he probado las 3 soluciones y ninguna me dio resultado,

- la primera la pribé y sigue igual
- la segunda si la tengo implementada y tampoco me resulta
- la tercera, me da error cuando lo implemento, lo he robado con iso-8859-1 y utf-8

los acento si se muestran correcamente, el problema es cuando envio datos por ajax, la variable $_POST me devuelve los datos, pero quita todos los caracteres especiales. por ejemplo, si envio "bebé" me retorna "beb", ni siquiera con ese simbolo en forma de rombo con un signo de interrogacion, simplemente codeigniter los omite.

estoy utilizando la version 2.0.3, tambien he usado la 2.0.2 con el mismo resultado, y tambien lo estoy corriendo en localhost
  #4 (permalink)  
Antiguo 16/10/2011, 10:29
Avatar de animerika1  
Fecha de Ingreso: octubre-2011
Mensajes: 27
Antigüedad: 12 años, 6 meses
Puntos: 3
Respuesta: problema con caracteres especiales

la codificacion especificala en mysql, modifica los campos y configura el cotejamiento, me avisas si te sirvio.
  #5 (permalink)  
Antiguo 16/10/2011, 10:42
 
Fecha de Ingreso: marzo-2008
Mensajes: 1.020
Antigüedad: 16 años, 1 mes
Puntos: 21
Respuesta: problema con caracteres especiales

Cita:
Iniciado por animerika1 Ver Mensaje
la codificacion especificala en mysql, modifica los campos y configura el cotejamiento, me avisas si te sirvio.
Por lo que puso en el enunciado nunca aclaro que esos datos que maneja esten cobijados en una base de datos. Igualmente lo que tu dices es un punto a revisar...
__________________
_
  #6 (permalink)  
Antiguo 16/10/2011, 10:44
 
Fecha de Ingreso: marzo-2008
Mensajes: 1.020
Antigüedad: 16 años, 1 mes
Puntos: 21
Respuesta: problema con caracteres especiales

Revisa el nucleo de Codeigniter....
__________________
_
  #7 (permalink)  
Antiguo 16/10/2011, 10:50
Avatar de danichalay  
Fecha de Ingreso: julio-2009
Mensajes: 35
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: problema con caracteres especiales

muchas gracias por responder, aun nada. te explico la logica del problema:

- he llenado directamente una tabla en la DB con datos, muchos de ellos con caracteres especiales, como "bebé" "ñandu" etc
- cargo esos datos y los muestro en pantalla, y salen correctamente
- he creado un formulario para poder editar esos registros, donde la data me carga correctamente
- entonces cargo un registro para editarlo, me cragar correctamente, y envio los datos por ajax. y he verificado que los datos son correctos antes de enviarlos
- cuando en php leo la variable $_POST me doy cuenta que los caracteres especiales han sido removidos de tal manera que me devuelve: "beb" "andu" respectivamente como puse en el paso 1

ya hice lo que me digiste, tanto tablas, campos y base de datos estaban con la codificacion latin1_swedish_c1 y estube probando de varias formas con utf8_swedish y nad, y viceversa
  #8 (permalink)  
Antiguo 16/10/2011, 10:51
Avatar de danichalay  
Fecha de Ingreso: julio-2009
Mensajes: 35
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: problema con caracteres especiales

que debo revisar en el nucleo?
  #9 (permalink)  
Antiguo 16/10/2011, 10:58
Avatar de danichalay  
Fecha de Ingreso: julio-2009
Mensajes: 35
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: problema con caracteres especiales

bueno, en la documentacion he visto esto, que quizas sea ese el problema, al mismo tiempo que nose como solucionarlo.
http://codeigniter.com/user_guide/general/security.html

CodeIgniter es estricto con caracteres que son permitidos en las URI para minimizar la posibilidad que datos maliciosos sean pasados a la aplicacion. las URI solo puede contener:

texto Alpha-numerico
Tilde: ~
Periodo: .
dos puntos: :
guion bajo: _
guion: -

y bueno, supongo que eso es lo que está malogrando mi aplicacion
  #10 (permalink)  
Antiguo 16/10/2011, 11:15
Avatar de animerika1  
Fecha de Ingreso: octubre-2011
Mensajes: 27
Antigüedad: 12 años, 6 meses
Puntos: 3
Respuesta: problema con caracteres especiales

Para mi el problema es el codeigniter. Ya me paso hace algun tiempo.

Abre el archivo config.php que vien dentro del codeigniter, ahi debe haber una linea parecida a esto:

$config['charset'] = 'UTF-8';


ahi define cual es el que necesitas y pon el mismo en la base de datos si no te funciona a la primera.

la base de datos dejala como utf8 general ci y asegurate de lo mismo en el header y meta

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

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Última edición por animerika1; 16/10/2011 a las 11:21
  #11 (permalink)  
Antiguo 16/10/2011, 14:40
Avatar de danichalay  
Fecha de Ingreso: julio-2009
Mensajes: 35
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: problema con caracteres especiales

bueno, creo que ya lo solucioné, no es lo mas optimo, pero me resulta

hice lo que me dijiste: puse toda la BD en utf8_general_ci, tambien configuré lo mismo en codeigniter, y se malogró todo, jaja

luego puse la bd en utf8_... y el codeigniter en latin1_swedish y los datos me cargaban bien, solo que al guardar me salia mal, pero ya reconocia los caracteres especiales, asi que solo para guardar, utilicé la instruccion utf8_encode y asi se solucionó.

muchas gracias a todos por ayudarme en esto que me tenia loco

Etiquetas: acentos, ajax, caracteres, codeigniter, especiales, post, tildes
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 22:19.