Foros del Web » Programando para Internet » PHP »

cotejamiento español

Estas en el tema de cotejamiento español en el foro de PHP en Foros del Web. hola, ya busqué en muchos foros y probé muchas alternativas pero hay un problema que no puedo solucionar. En primer lugar cuando introduzco cargo datos ...
  #1 (permalink)  
Antiguo 28/07/2010, 10:10
 
Fecha de Ingreso: junio-2010
Mensajes: 155
Antigüedad: 13 años, 10 meses
Puntos: 0
cotejamiento español

hola, ya busqué en muchos foros y probé muchas alternativas pero hay un problema que no puedo solucionar.

En primer lugar cuando introduzco cargo datos a la base de datos, las palabras que tienen acentos aparecen cortadas desde el acento, es decir, si tengo que almacenar "maldición" me guarda "maldici".

Por otro lado, agregué manualmente las palabras con acentos desde el phpmyadmin en algunos campos, y veo los datos correctamente desde el phpmyadmin, pero en la pagina, cuando muestra los datos muestra todo perfecto los acentos y ñ's, menos las que se sacan de la base de datos, me aparecen palabras algo asi como "Regalerà a - Decoración". Sinceramente no se que más hacer para que funcione correctamente.

Les cuento que configuracion tengo para que vean si hay algo que esté mal.

En el config.php del codeigniter tengo:
$db['default']['char_set'] = "utf8";
$db['default']['dbcollat'] = "utf8_general_ci";

las paginas tienen dentro de head:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

y el cotejamiento de los campos en la base de datos, hay algunos con utf8_bin, utf8_spanish_ci, utf8_spanish2_ci, para probar puse esos 3 pero dan el mismo resultado.

Por favor les agradezco mucho si me pueden ayudar con esto que ya probé de mil maneras y todavia no puedo solucionarlo

muchas gracias
  #2 (permalink)  
Antiguo 28/07/2010, 11:11
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: cotejamiento español

Esto:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
Por esto:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Que resultado te da?
  #3 (permalink)  
Antiguo 28/07/2010, 17:25
 
Fecha de Ingreso: julio-2010
Mensajes: 19
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: cotejamiento español

si son algunos campos puedes cambiarlos sin importar el navegador y la configuracion del php con

Código PHP:
$groserias =  utf8_encode("maldición");



$groserias =  utf8_decode("maldición"); 
  #4 (permalink)  
Antiguo 29/07/2010, 01:41
 
Fecha de Ingreso: junio-2010
Mensajes: 155
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: cotejamiento español

Cita:
Iniciado por DooBie Ver Mensaje
Esto:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
Por esto:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Que resultado te da?
que cosa mas rara esto, te acuerdas que habia comentado que en mi pagina se veia todo bien los acentos y ñ's menos de las palabras que venian de la base de datos??? ahora cambiando el charset a utf-8 solo se ven bien los caracteres de la base de datos, todo lo demas se ven mal con signos raros.


En cuanto al utf8_encode me parece que lo estoy usando mal capaz porque no me cambia en nada. Para mostrar los datos hago:
echo utf8_encode($cadenadelabd);
pero tiene el mismo resultado
  #5 (permalink)  
Antiguo 29/07/2010, 10:36
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: cotejamiento español

Cita:
Iniciado por walrus86 Ver Mensaje
que cosa mas rara esto, te acuerdas que habia comentado que en mi pagina se veia todo bien los acentos y ñ's menos de las palabras que venian de la base de datos??? ahora cambiando el charset a utf-8 solo se ven bien los caracteres de la base de datos, todo lo demas se ven mal con signos raros.


En cuanto al utf8_encode me parece que lo estoy usando mal capaz porque no me cambia en nada. Para mostrar los datos hago:
echo utf8_encode($cadenadelabd);
pero tiene el mismo resultado
Es normalmente pasa cuando usas un editor de texto que NO guarda el fichero en utf-8. Busca por las opciones/preferencias del editor, a ver si encuentras alguna opcion para la codificacion, editas el fichero con algun caracter extraño, y lo subes, si se ve bien, ya sabes que te toca :)

Es 'comun' lo que te pasa al cambiar la meta.

Saludos
  #6 (permalink)  
Antiguo 30/07/2010, 06:39
 
Fecha de Ingreso: junio-2010
Mensajes: 155
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: cotejamiento español

ah ok, y bueno al final dejé nomas en charset=iso-8859-1 y a la hora de meter datos a la base codifico los caracteres especiales nomas, asi me anda perfecto, aunque capaz sea un poco ineficiente... pero en fin, muchas gracias a todos por su ayuda

salu2
  #7 (permalink)  
Antiguo 30/07/2010, 07:19
Avatar de Chenon  
Fecha de Ingreso: abril-2005
Ubicación: Palma de Mallorca
Mensajes: 99
Antigüedad: 19 años
Puntos: 11
Respuesta: cotejamiento español

Que raro.
En mi codeigniter he puesto los metas en utf8.
En config/config.php tengo la variable de charset a utf8, y en database.php también.

Eso si,mis tablas en la base de datos són utf8, no sé como las tendrás tu.
__________________
www.serra-project.es
  #8 (permalink)  
Antiguo 30/07/2010, 08:32
 
Fecha de Ingreso: diciembre-2007
Mensajes: 33
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: cotejamiento español

Hola, yo tengo un rpoblema parecido.
Estoy haciendo una web y hay algunos caracteres como las Ñ y los acentiuados que me salen mal.
En la pagina donde se muestra index.php con charset utf-8, dentro de una tabla cargo valores de una base de datos con cotejamiento utf8_spanish_ci y ahi salen bien y sin ningun problema los caracteres que tienen que salir.
El problema esta que cuando en esa misma página cargo el texto que hay dentro de una funcion esos caracteres me salen mal.

Para aclarar lo que engo es mas o menos:

index.php (charset=utf-8)

en una celda tengo
Código PHP:
<td class="celdas1" width="300px"><? destaca1(); ?></td>
la funcion destaca1() esta en otro archivo llamado funciones el cual incluyo al principio de la página

dentro de funciones
tengo la funcion destaca1() que tiene:
Código PHP:
function destaca1()
{
printf("<tr>");
printf("<td colspan='2'>Título</td>");
printf("</tr>");
printf("<tr>");
printf("<td colspan='2'>Autor</td>");
printf("</tr>");
printf("<tr>");
printf("<td width='150px' rowspan='2'>Imagen</td>");
printf("<td width='150px'>Reseña</td>");
printf("</tr>");
printf("<tr>");
printf("<td colspan='2'>Precio</td>");
printf("</tr>");
printf("</table>");


en la pagina donde lo muestro tanto Título como Reseña salen mal por el acento y la Ñ.
He probado en el archivo de funciones a poner un header con el charset utf-8 y nada

Si directamente escribo un texto dentro de index.php que contenga acentos y ñ , éste se muestra bien.

¿Alguien sabe como arreglarlo?

Gracias
  #9 (permalink)  
Antiguo 30/07/2010, 09:50
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: cotejamiento español

El fichero debe estar escrito con codificacion utf-8, no es solamente el header, el meta y demas, el fichero en si, debe ser utf-8 tambien, eso debes cambiarlo en el editor de texto que uses.

Si estas en linux, tambien puedes usar esto:
iconv --from-code=ISO-8859-1 --to-code=UTF-8 mifichero.php > mificheroenutf8.php

Saludos.

EDITO: Explicación más detallada
  #10 (permalink)  
Antiguo 30/07/2010, 10:32
Avatar de Panicav  
Fecha de Ingreso: diciembre-2007
Ubicación: Rosario, Santa Fe - Argentina.
Mensajes: 135
Antigüedad: 16 años, 3 meses
Puntos: 8
Respuesta: cotejamiento español

Es raro yo echaria un vistazo a como guardas tus datos, revisa tu db en que codificación esta si es la misma de tu web o no, quizas sea una suma de cosas y por otra parte como tomas el valor a guardar (VALUE) creo que no es lo mismo que sea por ej '{$_POST[guardar]}' que '$_POST[guardar]', en donde an no estar las llaves tu acento o lo que sea corte la cadena y se produsca dicho error, si digo una pavada por favor haganmelo saver pero creo que puede andar por alli el problema.

Etiquetas: español
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 21:24.