Acentos en mysql (con php)

Iniciado por Shon, 6 Enero 2011, 17:17 PM

0 Miembros y 1 Visitante están viendo este tema.

Shon

Felices reyes a tod@s, espero no os hayan traido mucho carbón  :xD

He leído varias páginas pero no termino por aclararme del tema.

Tengo que introducir datos en mysql con php, entre estos datos, hay palabras con acentos y ñ.

La pregunta es: ¿Qué tengo que configurar para que se introduzcan bien? Por defecto me salen carecteres raros.

Y dónde tengo que modificdarlos, en la base de datos al crear las tablas? y/o en el script de php a la hora de introducir los datos?

Gracias chic@s

madpitbull_99

Cuando creas la base de datos con phpMyAdmin tienes que seleccionar el cotejamiento, que si no me equivoco es: latin1_spanish_ci





Prueba haciendo la DB así, ya no debería darte problemas con las tildes ni las eñes.



«Si quieres la paz prepárate para la guerra» Flavius Vegetius


[Taller]Instalación/Configuración y Teoría de Servicios en Red

Shon

Hola madpitbull_99!!!

Si no es mucho pedir, podrías decirme como haces eso mismo pero en plan scripts de consola:

create schema mibbdd;

Y si eso que me enseñas también hay que aplicarlo a las tablas con:

create table mitabla (
)
engine=innodb;


No es por tocar las narices,  pero es que no tengo instalado phpmyadmin y estoy armando un script con todas las creacciones de tablas y todas estas historias.

Supongo que eso que pones en phpmyadmin generará el correspondiente comandito.

Un saludo y mil gracias, me estas ayudando mucho en este cacao maravillao en el que me he metido xd


~ Yoya ~

Código (sql) [Seleccionar]
CREATE DATABASE  `BaseDeDatos` DEFAULT CHARACTER SET latin1 COLLATE latin1_spanish_ci;

http://dev.mysql.com/doc/refman/5.1/en/charset-connection.html
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

Shon

Lo he probado y funciona introduciendo datos desde la consola (insert into...)

Ahora bien, desde php sigue haciendolo mal.

He googleado y dicen que hay que configurar el php.ini (instale php apache y mysql por separado) y en default_charset poner:

default_charset = "iso-8859-1"

Pero nada de nada :(

He puesto
default_charset="latin1"

pero tampoco.

Se os ocurre por que no funciona bien?

Spider-Net

Prueba modificando la codificación de la web:


Código (html4strict) [Seleccionar]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Prueba</title>
</head>

<body>
</body>
</html>

Shon

Con eso ya funciona!!! Mil gracias  ;-)

~ Yoya ~

Cita de: Stack_Overflow en  7 Enero 2011, 14:33 PM
Lo he probado y funciona introduciendo datos desde la consola (insert into...)

Ahora bien, desde php sigue haciendolo mal.

He googleado y dicen que hay que configurar el php.ini (instale php apache y mysql por separado) y en default_charset poner:

default_charset = "iso-8859-1"

Pero nada de nada :(

He puesto
default_charset="latin1"

pero tampoco.

Se os ocurre por que no funciona bien?



Citardefault_charset="latin1"
No funcionara... Después de realizar cambios en el php.ini debes reiniciar apache.

Yo siempre ocupo UTF-8.
Código (php) [Seleccionar]
<?php 
echo 'El juego de caracter predeterminado es: '.ini_get('default_charset').'<br>';
echo 
'ñ'
exit;
?>


Salida:
El juego de caracter predeterminado es: UTF-8
ñ


default_charset = "UTF-8"
Cita de: php.netPHP siempre muestra el tipo de encoding por defecto en Content-type, en el encabezado. Para desactivar el charset simplemente deje el parámetro vacío.


Saludos.
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.