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
Cuando creas la base de datos con phpMyAdmin tienes que seleccionar el cotejamiento, que si no me equivoco es: latin1_spanish_ci
(http://madzone.comoj.com/image_host/images/capturgqg.png)
Prueba haciendo la DB así, ya no debería darte problemas con las tildes ni las eñes.
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
CREATE DATABASE `BaseDeDatos` DEFAULT CHARACTER SET latin1 COLLATE latin1_spanish_ci;
http://dev.mysql.com/doc/refman/5.1/en/charset-connection.html
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?
Prueba modificando la codificación de la web:
<!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>
Con eso ya funciona!!! Mil gracias ;-)
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?
(http://img23.imageshack.us/img23/8588/infohk.png)
Citardefault_charset="latin1"
No funcionara... Después de realizar cambios en el php.ini debes reiniciar apache.
Yo siempre ocupo UTF-8.
<?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.