Comunidad de diseño web y desarrollo en internet online

UTF-8 y cotejamiento en la DB

Citar            
MensajeEscrito el 14 Jun 2006 05:39 pm
Muy buenas maestros de clab ^^

Ultimamente estuve haciendo una aplicacion personal en php y con ganas de hacer mas quise mostrar unos caracteres en japones asi que quiero pasar la DB a UTF-8 ya que la tengo en latin1_swedish_ci y quisiera saber que tipo de cotejamiento es el mas adecuado para que todo valla bien en español, ingles, japones y demas caracteres raros :lol: :lol: .

Un saludo y gracias de antemano.

Por phpleo

130 de clabLevel

1 tutorial

 

Lima, Perú

firefox
Citar            
MensajeEscrito el 14 Jun 2006 05:52 pm
utf8_unicode_ci

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 14 Jun 2006 05:53 pm
Muchas gracias mestro, como siempre gentil y rápido :)

Por phpleo

130 de clabLevel

1 tutorial

 

Lima, Perú

firefox
Citar            
MensajeEscrito el 15 Jun 2006 02:18 pm
Como esta puede ser una duda común, pongo este tema como post-it (al menos por un tiempo).

Por Pedro

BOFH

3017 de clabLevel

3 tutoriales
6 articulos

  Bastard Operators From Hell

Honduras

firefox
Citar            
MensajeEscrito el 19 Ene 2007 10:11 pm
Supongo que esa codificación la tienes que pasar sobre los resultados que obtengas de la bd como el utf8_encode(); ¿no?

Por saulo

43 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 19 Ene 2007 10:12 pm
He buscado en php.net y parece que no debe ser así.

Por saulo

43 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 08 May 2008 02:54 pm
és esto correcto si quiero ver:

à ç á è \' etc.

:?

Que diferencia o porqué se pone character set i luego collate?

:? ^2

Estoy sufriendo con los caracteres, entre php xml flash y mysql....

Por Sisco

BOFH

3700 de clabLevel

12 tutoriales
4 articulos

Genero:Masculino   Bastard Operators From Hell

Catalunya

firefox
Citar            
MensajeEscrito el 29 May 2008 02:53 pm
Damn! Tengo creada una BD (con unos cuántos registros) y resulta ser que estoy teniendo este problemilla de juego de caracteres.

Ahora intento pasar mi BD a UTF8 ejecutando el comando:


Código :


ALTER DATABASE 'mi_tabla' DEFAULT CHARACTER SET utf8 COLLATE utf8_bin



Y resulta ser que MySql devuelve:

mysql escribió:



#1064 - Algo está equivocado en su sintax cerca 'DATABASE 'gtdfdesign' DEFAULT CHARACTER SET utf8 COLLATE utf8_bi' en la linea 1



¿Que estoy haciendo mal? o ¿Cómo puedo cambiar esto desde phpmyadmin?

Gracias

Por Necrophasto

Claber

148 de clabLevel



Genero:Masculino  

Diseñador gráfico y web

opera
Citar            
MensajeEscrito el 29 May 2008 02:58 pm
Ah! Lo solucioné muy locamente.

Resulta ser que el sitio está en UTF-8, y el panel de control estaba en ISO
Cambiando mi panel de control a ISO y editando las noticias desde el mismo panel de control. Se solucionó!

Espero que esto le sirva a alguien. Exitos!

Por Necrophasto

Claber

148 de clabLevel



Genero:Masculino  

Diseñador gráfico y web

opera
Citar            
MensajeEscrito el 10 Jul 2008 05:26 pm

Por neohunter

Claber

563 de clabLevel

1 tutorial

 

Bogota, Colombia

opera
Citar            
MensajeEscrito el 22 Ago 2008 10:09 pm
Yo tuve este problema y no recuerdo que solución plantié

Por tomasdev

221 de clabLevel

1 tutorial

 

Argentina por ahora...

firefox
Citar            
MensajeEscrito el 29 Sep 2008 08:32 am
Buenos días, pues yo tengo un problema cuando guardo cadenas de texto de php a mysql.
Tengo un archivo XML con ISO-8859 y estoy leyendo desde PHP. Tengo una variable de PHP que me guarda el contenido de ese archivo XML (algunas etiquetas en concreto) y lo guarda en una base de datos Mysql. En la base de datos Mysql tengo la codificación latin_swedish_ci.
Mi pregunta es, que codificación o que debería hacer para que se mostraran bien los datos ?

Por xinxan22

1 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 20 Feb 2009 08:46 pm

Estoy sufriendo con los caracteres, entre php xml flash y mysql....


parece que es un mal comun...

Por joarobles

753 de clabLevel

8 tutoriales

 

Córdoba - Argentina

firefox
Citar            
MensajeEscrito el 22 Mar 2009 05:05 pm
Para cambiar el cotejamiento de la Base de Datos en MySQL con appserv debes hacer lo siguiente:

- Primero seleccionas la Base de Datos y te vas a la pestaña OPERACIONES. En la parte inferior podrás ver COTEJAMIENTO y podrás cambiarlo fácilmente.

Eso que hemos cambiado es el cotejamiento, ¿vale? Si quieres cambiar ahora el Charset tendrías que hacerlo tabla a tabla y campo a campo, labor que imagino será un poco engorrosa por pocas tablas que tengas en la Base de Datos.

Pues bien, lo que yo siempre he hecho en este caso y creo que es lo más fácil es:
- Exportar la base de datos completa a un fichero SQL.
- Abrir el fichero SQL con un editor de texto y reemplazar de un tirón "latin1" por "utf8".
- Guardamos los cambios
- En PhpMyAdmin borramos todas las tablas de la BD
- Importamos el fichero SQL en la base de datos.

Un saludo

José María
diseño web extremadura

Por fnsoftware

10 de clabLevel



 

msie
Citar            
MensajeEscrito el 27 Abr 2009 04:35 pm
Yo estoy con el mismo problema, en el html donde tengo el formulario tengo
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
en mi BD en Mysql Juegos de caracteres de MySQL: UTF-8 Unicode (utf8)
Y el resto, cotejamiento (en operaciones cmo dices) y las tablas con sus campos tengo todo como Utf-8_unicode_ci ya que Utf-8 como tal no aparece. Pero sigue almacenando mal en la BD.....

Por riestra

73 de clabLevel



 

msie8
Citar            
MensajeEscrito el 02 May 2009 10:09 pm
hola mi pregunta es como puedo crear
un sitio que pueda surbir fotos
y tenga espacio para comentario algo como myspace pero en un sitio web formal?
espero y me puedan ayudaarr :)

Por mickimause

0 de clabLevel



 

dfhdfhdh

msie7
Citar            
MensajeEscrito el 02 May 2009 10:44 pm
hola mi pregunta es como puedo crear
un sitio que pueda surbir fotos
y tenga espacio para comentario algo como myspace pero en un sitio web formal?
espero y me puedan ayudaarr :)


totalmente desubicado...

Por joarobles

753 de clabLevel

8 tutoriales

 

Córdoba - Argentina

firefox
Citar            
MensajeEscrito el 23 Ago 2009 07:49 am
Hola no se si sea el mejor lugar para preguntarlo, pero tengo un problema con un foro implementado en mi site, es el tuto del foro de zonaPHP.com (perdon por el spam) y bueno me deja crear nuevos temas o posts, pero en el textarea uno escribe normal y puede poner acentos y todo bien, pero cuando crear el post y lo visualizas.. los caracteres especiales se ven como en formato html con lo que hace dificil la lectura del mismo, como lo soluciono? en la DB tengo todo en UTF8-spanish-ci pero sigue mostrando todo igual....
Segun el tuto hay una funcion en uno de los archivos php que hace que el usuario no pueda escribir codigo html (que por seguridad) pero que funge como interprete para que cuando se vea el mensaje publicado se viera bien pero no lo hace.. me podrian ayudar? ^_^ me gustaria que los mensajes fueran mostrados como aqui xD

Por Mike§ilver

83 de clabLevel



 

safari
Citar            
MensajeEscrito el 04 Abr 2010 10:56 pm
Buenas tardes, tengo un problema a la hora de hacer las inserciones en mi BD en mysql en linux, no me permite insertar un campo de correo como este kendinho22@gmail.com me quita el @ y me pone %40. Si le quito el @ me realiza la insercion pero me desaparece el punto.. Estoy desesperado ya q es mi trabajo de grado. Espero q me puedan ayudar.

Por Kendall25

0 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Feb 2012 02:57 pm

Kendall25 escribió:

Buenas tardes, tengo un problema a la hora de hacer las inserciones en mi BD en mysql en linux, no me permite insertar un campo de correo como este kendinho22@gmail.com me quita el @ y me pone %40. Si le quito el @ me realiza la insercion pero me desaparece el punto.. Estoy desesperado ya q es mi trabajo de grado. Espero q me puedan ayudar.


@Kendall25, Prueba agregando esta linea después de la conexión y antes de la selección de la base de datos: mysql_query("SET NAMES 'utf8'"); esta linea evitara que en la db entren caracteres desconocidos ps los tomara como utf8

Por DaCoder

3 de clabLevel



 

Desarrollador Web

chrome
Citar            
MensajeEscrito el 20 Abr 2012 04:58 pm
muy buenos aportes son de gran utilidad

Por adcreativaperu

2 de clabLevel



Genero:Masculino  

Diseño Web Perú

chrome
Citar            
MensajeEscrito el 27 Ene 2013 01:25 pm
recuerdo que lo solucion (sacado de php.net) agregando lo siguiente a la consulta.

Código PHP :

@mysql_query("SET NAMES 'utf8'");


No se si te servira, pero lo dejo por aca.

Por matesasesinos

18 de clabLevel



 

Desarrollo Web

firefox
Citar            
MensajeEscrito el 10 Sep 2013 02:57 pm
Hola a todos,
he estado leyendo las respuestas de este tema y he leido que para que en español salga bien ñ, tildes, etc. hay que usar utf8_unicode_ci por lo que cada tabla que tengo creada (MySQL) la creo con los siguientes valores:

Código MySQL :

DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci


Lo que no me queda claro es como tengo que poner las demás cosas, es decir, el charset que debo poner en html y si lo anterior que puse al crear cada tabla serviría o no. Además, ¿hay que tocar algo en php.ini para que se elija además este charset?

Básicamente tengo problemas al recuperar palabras con ñ o tildes de la base de datos. En la base de datos se guardan bien pero luego, si en el código hago un SELECT sobre algún campo, si ese campo no tiene ningún caracter raro se me muestra sin problemas en la página web pero si, por el contrario, el campo tiene una palabra con tilde o ñ directamente no me recupera nada y me da error, como si no encontrara esa variable. He comprobado que me pasa siempre que tengo ñ o tildes.

Por napemi

8 de clabLevel



 

firefox
Citar            
MensajeEscrito el 10 Sep 2013 07:33 pm
Absolútamente todo tiene que estar en UTF-8.
Hago una lista de las cosas que debes revisar. Si tan solo una falla, todas las demás fallan.
- La base de datos MySQL debe estar en UTF-8 (COLLATE=utf8_unicode_ci).
- La tabla debe estar en UTF-8.
- Los campos charset, text y equivalentes deben estar en UTF-8.
- La transmisión entre el programa de aplicación y el motor de base de datos debe estar en UTF-8 (ejecutar "SET NAMES 'utf8'" inmediatamente después de conectar con la base de datos para estar seguros).
- El archivo de código fuente del sitio web debe estar en UTF-8 sin "BOM". Esto incluye archivos, html, php, javascript y CSS.
- La codificación que el servidor anuncia al navegador debe ser UTF-8. Usar header("Content-type: text/html; charset=utf-8;"); para estar seguro pero es mejor si el servidor se configura adecuadamente.
- En los HTML también debe agregarse el tag <meta> correcto.
<meta charset="UTF-8" /> para HTML5, o <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> para el resto de versiones de HTML

Por DriverOp

Claber

2511 de clabLevel



 

opera
Citar            
MensajeEscrito el 10 Sep 2013 08:46 pm
Muchas gracias, probaré todo lo que me comentaste :D

Por napemi

8 de clabLevel



 

firefox
Citar            
MensajeEscrito el 10 Sep 2013 09:37 pm
Tengo problemas con alguna de las cosas que me dijiste:

- La base de datos MySQL debe estar en UTF-8 (COLLATE=utf8_unicode_ci) --> esto no se como hacerlo, ya que la base de datos ya está creada (uso un servidor externo) y no se como definirlo.
- El archivo de código fuente del sitio web debe estar en UTF-8 sin "BOM". Esto incluye archivos, html, php, javascript y CSS --> esto no lo entendí la verdad.

Lo demás lo hice todo y me sigue sin ir

Por napemi

8 de clabLevel



 

firefox
Citar            
MensajeEscrito el 11 Sep 2013 12:59 pm
Habías dicho que siempre creabas la base de datos con esa codificación. Así que debería estar ya así. Si no es así, tendrás que recrear la tabla.

Ten en cuenta además que si has guardado un dato no-UTF8 en una tabla con condificación UTF8 y no haz hecho la conversión, el dato seguirá en la codificación anterior pero reinterpretado como UTF8 y por tanto puede aparecer como datos "extraños".

Los editores de texto modernos tienen la opción de guardar y editar texto en UTF8 y algunos hasta hacen la conversión de ASCII a UTF8 (yo uso el Notepad++ para eso). Pero debes verificar que el programa no guarde el carácter BOM al inicio del archivo porque interfiere con el intérprete de PHP (y hasta Apache se queja en algunas circunstancias). Más información...

Por DriverOp

Claber

2511 de clabLevel



 

opera
Citar            
MensajeEscrito el 11 Sep 2013 03:18 pm
La base de datos no la he creado yo, pero dentro de ella tengo tablas que las creo tal como hay que crearlas con UTF-8. He borrado y vuelto a crear esas tablas, para añadir de nuevo los datos, y sigue habiendo problemas.

Cuando muestro algo con ñ o tilde no pasa nada, se muestra bien. El problema lo tengo por ejemplo en algo como esto:

Código PHP :

       
 //Check login
if (login($username, $passwd)) {
      $action = "userProfile.php?user='$username' ";
      header("Location: userProfile.php?user='$username' ");
} else {
      $mensaje = 1;
}


En este fragmento se llama a la funcion login y, sin problemas, da true y se loguea y pasa al perfil (tenga usuario con ñ, tilde o como sea...). El tema está en que luego en ese perfil tengo una serie de campos del perfil que se muestran al hacer un SELECT con el $username y si ese $username tiene ñ o tilde me muestra errores en los campos de tipo:

Código :

<br /><b>Notice</b>:  Undefined variable: auxName in <b>C:\xampp\htdocs\PFC\public_html\userProfile.php</b> on line <b>164</b><br />
es decir, es como si no cogiera valor del SELECT para pasarselo a ese auxName que es el que hace que se muestre el valor en el input de texto.

La verdad que ya no se que más hacer para que me coja esos valores :(

Por napemi

8 de clabLevel



 

firefox
Citar            
MensajeEscrito el 11 Sep 2013 07:37 pm
¿Qué dice la línea 164?.

Por DriverOp

Claber

2511 de clabLevel



 

opera
Citar            
MensajeEscrito el 11 Sep 2013 08:08 pm
La línea 164 es:

<input name="namePS" value="<?php echo($auxName); ?>" data-mini="true" type="text" required>

Es donde le paso al input el valor que recojo de un SELECT según el usuario que esté entrando, para mostrar su nombre, apellidos, etc y, además, no lo pongo como de solo lectura porque, una vez entran los usuarios, también pueden modificar estos valores

Por napemi

8 de clabLevel



 

firefox

   Página 1 de 2

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.