[codeigniter-spanish] Problema con caracteres

1,349 views
Skip to first unread message

Matias Garat Ortiz

unread,
May 6, 2010, 3:05:44 PM5/6/10
to CodeIgniter-spanish
A ver, un nuevo problemita que se me ha presentado a menudo. Las
palabras con acentos, "ñ" y demas.
Cuando escribo el codigo en html los reemplazo por ejemplo con "ñ" =
"ñ". Ahora bien, en un formulario lo que hago es escribir
directamente la ñ. Si esto lo almaceno en una db me lo guarda como ñ.
Lo cual si yo pongo la web en utf-8 no es problema, y de hecho en mis
pruebas locales se ve bien. Pero porque no se ve bien cuando lo pruebo
online??? tambien tengo seteado como utf-8 el codeigniter.

--
---
Para anular la suscripción a este grupo, envía un mensaje a
codeigniter-spa...@googlegroups.com
Para obtener más opciones, visita este grupo en
http://groups.google.com/group/codeigniter-spanish?hl=es.

Hernando Gisinger

unread,
May 6, 2010, 3:10:30 PM5/6/10
to codeignit...@googlegroups.com
¿Y como está definido ej juego de caracteres en la base de datos?
Tambien mira estos dos valores en database.php

$db['default']['char_set'] = "latin1";
$db['default']['dbcollat'] = "latin1_swedish_ci";

Saludos

El día 6 de mayo de 2010 16:05, Matias Garat Ortiz
<matiasga...@gmail.com> escribió:

Matias Garat Ortiz

unread,
May 6, 2010, 3:31:22 PM5/6/10
to CodeIgniter-spanish
Bien, me he fijado en esas dos lineas que mencionabas Hernando, y
estan en utf-8. Revise todas las tablas y la db y estan como utf-8. El
html figura como utf-8. Pero me sigue apareciendo simbolos raros en el
lugar donde deberian estar los acentos o las ñ.

por ej: "hidráulica" en lugar de "hidráulica"

Saludos!

On 6 mayo, 16:10, Hernando Gisinger <hgisin...@gmail.com> wrote:
> ¿Y como está definido ej juego de caracteres en la base de datos?
> Tambien mira estos dos valores en database.php
>
> $db['default']['char_set'] = "latin1";
> $db['default']['dbcollat'] = "latin1_swedish_ci";
>
> Saludos
>
> El día 6 de mayo de 2010 16:05, Matias Garat Ortiz
> <matiasgarator...@gmail.com> escribió:
>
> > A ver, un nuevo problemita que se me ha presentado a menudo. Las
> > palabras con acentos, "ñ" y demas.
> > Cuando escribo el codigo en html los reemplazo por ejemplo con "ñ" =
> > "&ntilde;". Ahora bien, en un formulario lo que hago es escribir
> > directamente la ñ. Si esto lo almaceno en una db me lo guarda como ñ.
> > Lo cual si yo pongo la web en utf-8 no es problema, y de hecho en mis
> > pruebas locales se ve bien. Pero porque no se ve bien cuando lo pruebo
> > online??? tambien tengo seteado como utf-8 el codeigniter.
>
> > --
> > ---
> > Para anular la suscripción a este grupo, envía un mensaje a
> > codeigniter-spa...@googlegroups.com
> > Para obtener más opciones, visita este grupo en
> >http://groups.google.com/group/codeigniter-spanish?hl=es.
>
> --
> ---
> Para anular la suscripción a este grupo, envía un mensaje a
> codeigniter-spa...@googlegroups.com
> Para obtener más opciones, visita este grupo enhttp://groups.google.com/group/codeigniter-spanish?hl=es.

william campos

unread,
May 6, 2010, 3:37:41 PM5/6/10
to codeignit...@googlegroups.com
Amigo prueba poner esto en el html
<meta http-equiv="content-type" content="text/html; charset=utf-8" /> o <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> suerte u_U
a12f62df1f
a12f62df1f

Nokrosis

unread,
May 6, 2010, 4:02:20 PM5/6/10
to codeignit...@googlegroups.com
Exacto, debes definir tu codificación en el head de tu html. Aunque siempre es buena práctica escapar los caracteres cuando vas a imprimierlos, sobre todo cuando es algo que un usuario ingresó en un formulario.

Usa htmlentities(), por ejemplo.

2010/5/6 william campos <yovi...@gmail.com>

Matias Garat Ortiz

unread,
May 6, 2010, 4:11:41 PM5/6/10
to CodeIgniter-spanish
Bien, ahora intentare con htmlentities(), porque he revisado el
cotejamiento de cada registro de la db, el de las tablas y la db y
todos estan en utf-8. El archivo de database.php figura en utf-8 y en
los encabezados html esta utf-8. Sijn embargo sigo viendo mal los
caracteres.

En la db las palabras aparecen correctamente con acentos o ñ, pero
cuando las imprimo en la web no.

Saludos

On 6 mayo, 17:02, Nokrosis <nokro...@gmail.com> wrote:
> Exacto, debes definir tu codificación en el head de tu html. Aunque siempre
> es buena práctica escapar los caracteres cuando vas a imprimierlos, sobre
> todo cuando es algo que un usuario ingresó en un formulario.
>
> Usa htmlentities(), por ejemplo.
>
> 2010/5/6 william campos <yovisi...@gmail.com>
>
>
>
>
>
> > Amigo prueba poner esto en el html
> > <meta http-equiv="content-type" content="text/html; charset=utf-8" /> o
> > <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
> > suerte u_U
>
> > El 6 de mayo de 2010 14:31, Matias Garat Ortiz <matiasgarator...@gmail.com

william campos

unread,
May 6, 2010, 4:45:58 PM5/6/10
to codeignit...@googlegroups.com
Amigo probaste esto ?
<meta http-equiv="content-type" content="text/html; charset=utf-8" /> o si no <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> suerte u_U

Matias Garat Ortiz

unread,
May 6, 2010, 5:38:35 PM5/6/10
to CodeIgniter-spanish
Si william, probe con eso pero no funciona. gracias

On 6 mayo, 17:45, william campos <yovisi...@gmail.com> wrote:
> Amigo probaste esto ?
> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> o si
> no <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"
> /> suerte u_U
>
> El 6 de mayo de 2010 15:11, Matias Garat Ortiz
> <matiasgarator...@gmail.com>escribió:

alexander casas ravello

unread,
May 6, 2010, 5:49:41 PM5/6/10
to codeignit...@googlegroups.com
Eso tmb me paso a mi, lo que hize fue cambiar el lenguaje de la base de datos a latino.

Saludos

Alexander Casas Ravello
Programador y Diseñador Web

<<P431i7o>>

unread,
May 6, 2010, 7:16:15 PM5/6/10
to codeignit...@googlegroups.com
yo lo habia solucionado partiendo siempre de usar latin_spanish_ci desde el comienzo del desarrollo, e inclusive al crear la base de datos, y no tuve problemas...

ahora cuando planteas hacerlo a mitad de camino cuando ya tienes datos en el otro formato, siempre se me armaba un quilombo barbaro!
--
Saludos Cordiales
---------------------------------------------
Pablo F.Ruiz Diaz Rios
Desarrollo Web con tecnologias de PHP, MySQL, AJAX (aunque tecnicamente ajax no es una nueva tecnologia,sino, la combinacion de varias)
messenger: http://tinymailto.com/p431i7omsn

PROTEGE TU RED:

Compartimos mensajes. Así que POR FAVOR, si vas a realizar un reenvío de este correo o cualquier otro recibido, BORRA mi dirección de correo y todas las direcciones de correo que aparezcan en los textos.

Proteje las direcciones de  tus amigos y la mía, enviando solo como CCO o BCC, Con copia oculta y NO PARA, ni CC: para evitar que usen nuestras direcciones y recibir correos no deseados, virus, spam etc.

Jairo Ochoa

unread,
May 6, 2010, 7:34:02 PM5/6/10
to codeignit...@googlegroups.com
la base de datos que tenga los campos utf_general_ci
al html ponle un content-type utf-8
el archivo html/php guardalo como utf-8

si haces esas 3 cosa debería ir.

la última seguramente se te ha pasado


y te ahorras hacer la conversion n -> &ntilde; á -> &aacute;  etc etec

--

Jairo Ochoa

Fásiko

unread,
May 6, 2010, 7:56:49 PM5/6/10
to codeignit...@googlegroups.com
Estoy con Jairo. Mira la codificación de la página donde tengas el formulario de php. Creo que es lo único que queda ya que lo demás está bien.

De todas formas, puedes ir haciendo pruebas. Osease, haz un print_r($_POST) en la función del controlador que recibe el formulario y lo pruebas. Una vez tengas el print en la pantalla, pruebas a cambiar la codificación en el navegador de UTF-8 a latin. Si se ve bien en UTF-8, haz un print_r de los datos que mandas a la vista donde muestras ya el listado (o lo que sea que uses para mostrar los datos de la bd). Vuelve a probar a cambiar la codificación.

Así al menos compruebas si es de la base de datos, de las cabeceras del formulario o de las cabeceras de la página que muestre los datos de la bd...


Suerte....

Matias Garat Ortiz

unread,
May 6, 2010, 11:13:01 PM5/6/10
to CodeIgniter-spanish
Jairo, no entendi lo de "el archivo html/php guardalo como utf-8
" (osea el 3 punto que me dices). Yo cargo desde un formulario datos a
una db. luego, con un una funcion de un controlador leo en la db los
datos y los muestro en un archivo .php que hay en views. En realidad
nunca hay un archivo html. Si hay codigo html en los php, si? de modo
que en los meta yo coloco lo de charset utf y demas, pero no comprendo
a que te refieres con ese 3 punto. Saludos!

On 6 mayo, 20:56, Fásiko <fas...@gmail.com> wrote:
> Estoy con Jairo. Mira la codificación de la página donde tengas el
> formulario de php. Creo que es lo único que queda ya que lo demás está bien.
>
> De todas formas, puedes ir haciendo pruebas. Osease, haz un print_r($_POST)
> en la función del controlador que recibe el formulario y lo pruebas. Una vez
> tengas el print en la pantalla, pruebas a cambiar la codificación en el
> navegador de UTF-8 a latin. Si se ve bien en UTF-8, haz un print_r de los
> datos que mandas a la vista donde muestras ya el listado (o lo que sea que
> uses para mostrar los datos de la bd). Vuelve a probar a cambiar la
> codificación.
>
> Así al menos compruebas si es de la base de datos, de las cabeceras del
> formulario o de las cabeceras de la página que muestre los datos de la bd...
>
> Suerte....
>
> El 7 de mayo de 2010 01:34, Jairo Ochoa <jairo.oc...@gmail.com> escribió:
>
>
>
>
>
> > la base de datos que tenga los campos utf_general_ci
> > al html ponle un content-type utf-8
> > el archivo html/php guardalo como utf-8
>
> > si haces esas 3 cosa debería ir.
>
> > la última seguramente se te ha pasado
>
> > y te ahorras hacer la conversion n -> &ntilde; á -> &aacute;  etc etec
>
> > --
>
> > Jairo Ochoa
>
> > El 7 de mayo de 2010 01:16, <<P431i7o>> <pablito.feder...@gmail.com>escribió:
>
> > yo lo habia solucionado partiendo siempre de usar latin_spanish_ci desde el
> >> comienzo del desarrollo, e inclusive al crear la base de datos, y no tuve
> >> problemas...
>
> >> ahora cuando planteas hacerlo a mitad de camino cuando ya tienes datos en
> >> el otro formato, siempre se me armaba un quilombo barbaro!
>
> >> El 6 de mayo de 2010 17:49, alexander casas ravello <
> >> alexanderc...@gmail.com> escribió:
>
> >> Eso tmb me paso a mi, lo que hize fue cambiar el lenguaje de la base de
> >>> datos a latino.
>
> >>> Saludos
>
> >>> Alexander Casas Ravello
> >>> Programador y Diseñador Web
>
> >>> El 6 de mayo de 2010 16:38, Matias Garat Ortiz <
> >>> matiasgarator...@gmail.com> escribió:

jose victor ramos sanchez

unread,
May 6, 2010, 11:37:49 PM5/6/10
to codeignit...@googlegroups.com
Prueba usando http://www.php.net/manual/es/function.utf8-encode.php
o decode segun la codificacion que quieras usar

http://www.php.net/manual/es/function.utf8-decode.php

decode regresa la cadena en ISO-8859-1

2010/5/6 Matias Garat Ortiz <matiasga...@gmail.com>



--
<☼<allende>☼>
http://www.aliviana.com

jose victor ramos sanchez

unread,
May 6, 2010, 11:42:15 PM5/6/10
to codeignit...@googlegroups.com
Jairo se refiere a la codifacion del archivo en si, es decir si es ASCII, algun ISO , OEM , etc
por ejemplo con notepad++ puedes acmbiar la codificacion del archivo facilmente con una opcion en el menu principal "enconding"



2010/5/6 jose victor ramos sanchez <joze...@gmail.com>
encoding.PNG

Matias Garat Ortiz

unread,
May 7, 2010, 12:31:55 PM5/7/10
to CodeIgniter-spanish
gracias a todos, problema solucionado. Hice lo siguiente. La db, sus
tablas y registros quedaron en utf-8. la codificación del archivo es
ansi, y el meta es iso. use la funcion uft-decode y se ve genial.

sinceramente podria haber probado a pasar la db a otro cotejamiento,
pero esta solución era más rapida, aunque nose si más efectiva. pero
en fin, para lo que tiene que ser funciona bien, de modo que hasta la
próxima revisión quedara así.

saludos, y gracias nuevamente

On 7 mayo, 00:42, jose victor ramos sanchez <jozeun...@gmail.com>
wrote:
> Jairo se refiere a la codifacion del archivo en si, es decir si es ASCII,
> algun ISO , OEM , etc
> por ejemplo con notepad++ puedes acmbiar la codificacion del archivo
> facilmente con una opcion en el menu principal "enconding"
>
> 2010/5/6 jose victor ramos sanchez <jozeun...@gmail.com>
>
>
>
> > Prueba usandohttp://www.php.net/manual/es/function.utf8-encode.php
> > o decode segun la codificacion que quieras usar
>
> >http://www.php.net/manual/es/function.utf8-decode.php
>
> > decode regresa la cadena en ISO-8859-1
>
> > 2010/5/6 Matias Garat Ortiz <matiasgarator...@gmail.com>
> ...
>
> leer más »
>
>  encoding.PNG
> 53 KVerDescargar

Nokrosis

unread,
May 7, 2010, 12:34:42 PM5/7/10
to codeignit...@googlegroups.com
Estás seguro que con el meta en utf8 y sin el utf8_decode se veía mal??

2010/5/7 Matias Garat Ortiz <matiasga...@gmail.com>

Matias Garat Ortiz

unread,
May 7, 2010, 12:44:24 PM5/7/10
to CodeIgniter-spanish
si. pero bueno, ya seguire con más pruebas.

On 7 mayo, 13:34, Nokrosis <nokro...@gmail.com> wrote:
> Estás seguro que con el meta en utf8 y sin el utf8_decode se veía mal??
>
> 2010/5/7 Matias Garat Ortiz <matiasgarator...@gmail.com>
> ...
>
> leer más »

<<P431i7o>>

unread,
May 7, 2010, 1:07:51 PM5/7/10
to codeignit...@googlegroups.com
existio algun proyecto que desarrolle donde por una mala decision
tuve luego que hacer utf8_encode y decode por cada fila recuperada/insertada desde y hacia la base de datos hacia y desde la pagina web, desde esa vez, nunca mas quise saber nada, procure ya usar solo iso, 
me traumo eso, jajaja
--
Saludos Cordiales
---------------------------------------------
Pablo F.Ruiz Diaz Rios
Desarrollo Web con tecnologias de PHP, MySQL, AJAX (aunque tecnicamente ajax no es una nueva tecnologia,sino, la combinacion de varias)
messenger: http://tinymailto.com/p431i7omsn

PROTEGE TU RED:

Compartimos mensajes. Así que POR FAVOR, si vas a realizar un reenvío de este correo o cualquier otro recibido, BORRA mi dirección de correo y todas las direcciones de correo que aparezcan en los textos.

Proteje las direcciones de  tus amigos y la mía, enviando solo como CCO o BCC, Con copia oculta y NO PARA, ni CC: para evitar que usen nuestras direcciones y recibir correos no deseados, virus, spam etc.

Fásiko

unread,
May 7, 2010, 1:25:07 PM5/7/10
to codeignit...@googlegroups.com
@P431i7o

Yo tuve los mismos problemas en 2 de mis proyectos (en aquellos principios de novato...) por la codificación también. Por entonces quería usar utf-8 y escribía código codificado con iso.
Realmente solventé todos mis problemas cuando me decidí a realizar absolutamente todo en utf-8.

Mismo caso pero al inversa...


El 7 de mayo de 2010 19:07, <<P431i7o>> <pablito....@gmail.com> escribió:
e datos hacia y desde la pagina

Jairo Ochoa

unread,
May 7, 2010, 2:34:26 PM5/7/10
to codeignit...@googlegroups.com
Es un problema de los ficheros .PHP
La mayoria de lso programas te dejan elegir la codificación, yo uso Coda y deja, y Dreamweaver creo que también. Hasta el block de notas de Windows.
Haciendo el utf_decode conviertes á -> &aacute; ???
Si lo ahces con todo texto que viene de la base de datos es cargar el procesador innecesariamente.

Creo que lo mejor es re-guardar los ficheros como utf.
Al menos para proyectos futuros.


Saludos
--

Jairo Ochoa

Jimmy Collazos || acido || cuatroxl.com

unread,
May 7, 2010, 4:13:07 PM5/7/10
to codeignit...@googlegroups.com
Si huvieces  leído esto antes te habrías ahorrado el disgusto :P

http://cuatroxl.com/2008/07/codificacion-de-caracteres-para-documentos-web/



--
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::: J i m m y  C o l l a z o s :::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
desarrollado web; estándar, accesible, escalable
----------------------------------------------------------------------------
                                                               acido69

Nokrosis

unread,
May 7, 2010, 4:44:56 PM5/7/10
to codeignit...@googlegroups.com
Cierto, también debemos checar qué codificación está configurada en el apache y la que está configurada en el php.ini

2010/5/7 Jimmy Collazos || acido || cuatroxl.com <aci...@gmail.com>

Gebe

unread,
May 7, 2010, 5:08:18 PM5/7/10
to CodeIgniter-spanish
Lo que tienes que hacer es que todo tipo de archivo, de cualquier tipo
el sea (php, js, html, conexiones a db, db, tablas) estén codificadas
en el mismo juego de caracteres, a veces no te das cuenta, pero tenes
un include o algo que no este en el mismo coding y te caga todo.
En tu caso utf-8, en la mayoría de los IDE no basta con declarar el
doctype en utf-8, si no que la codificación del archivo en si tmb debe
estarlo. Esto tienes que buscarlo en tu IDE de donde se setea, algunos
al hacer "guardar como" te dan las opciones, otros como Dreamweaver,
debes ir a modificar > propiedades de la pagina > title/encoding...

Saludos
Gebe

On 7 mayo, 17:44, Nokrosis <nokro...@gmail.com> wrote:
> Cierto, también debemos checar qué codificación está configurada en el
> apache y la que está configurada en el php.ini
>
> 2010/5/7 Jimmy Collazos || acido || cuatroxl.com <acid...@gmail.com>
>
>
>
>
>
> > Si huvieces  leído esto antes te habrías ahorrado el disgusto :P
>
> >http://cuatroxl.com/2008/07/codificacion-de-caracteres-para-documento...
>
> > --
>
> > ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :
> > :::::::::::::::: J i m m y  C o l l a z o s :::::::::::::::::::::
>
> > ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :
> > desarrollado web; estándar, accesible, escalable
>
> > --------------------------------------------------------------------------- -
> >                                                                acido69
>
> >  --
> > ---
> > Para anular la suscripción a este grupo, envía un mensaje a
> > codeigniter-spa...@googlegroups.com
> > Para obtener más opciones, visita este grupo en
> >http://groups.google.com/group/codeigniter-spanish?hl=es.
>
> --
> ---
> Para anular la suscripción a este grupo, envía un mensaje a
> codeigniter-spa...@googlegroups.com
> Para obtener más opciones, visita este grupo enhttp://groups.google.com/group/codeigniter-spanish?hl=es.
Reply all
Reply to author
Forward
0 new messages