Cita de: MinusFour en 27 Agosto 2019, 05:28 AM
Tienes que volver a re insertar la información en tu base de datos, porque la información que está en tu base de datos está incorrecta.
SON UNOS GENIOS! VOS Y EDEPC MUCHAS GRACIAS A LOS DOS!
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes MenúCita de: MinusFour en 27 Agosto 2019, 05:28 AM
Tienes que volver a re insertar la información en tu base de datos, porque la información que está en tu base de datos está incorrecta.
Cita de: MinusFour en 27 Agosto 2019, 05:12 AM
No se si haya menus en español, yo tengo mi sublime en inglés. Pero primero abro el archivo con sublime y después voy a File->Reopen With Encoding->Windows 1252. Yo creo que el archivo si está en UTF-8....
Lo del charset, si es muy probable que este afectando tu información. Porque la información viaja codeada en ISO-8859-1 (Mysql no usa Windows 1252??), lo que significa que tu cliente malforma el texto UTF-8.
Para PDO puedes hacer:$db = new PDO('mysql:host=localhost;dbname=basededatos;charset=utf8', 'usuario', 'contraseña');
Y yo probaría de nuevo con el query para estar seguro.
Cita de: MinusFour en 27 Agosto 2019, 04:52 AM
Nosotros solo vamos a poder ver UTF-8 porque es el encoding que usa el foro. Tendrías que subir el archivo a algún lado o nos puedes dar el dump en hexadecimal (pero no lo hagas). Como dije, la forma más simple de revisar si el archivo está en Windows 1252, es simplemente usar un editor que te permita abrir el archivo usando otros encodings.
Sublime es gratis, tiene está función y es super sencillo de usar. Notepad++ también tiene una función similar.
O podrías darnos el hexadecimal de los caracteres relevantes. Tampoco es difícil.
Si tuviera que adivinar tienes:
0x4d 0xc3 0x83 0xc2 0xad 0x67 0x75 0x65 0x6c
Para el string de: MÃguel
-- MySQL dump 10.16 Distrib 10.1.37-MariaDB, for Win32 (AMD64)
--
-- Host: localhost Database: basedatos
-- ------------------------------------------------------
-- Server version 10.1.37-MariaDB
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Table structure for table `usuarios`
--
DROP TABLE IF EXISTS `usuarios`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `usuarios` (
`id_user` int(50) NOT NULL AUTO_INCREMENT,
`name` varchar(25) COLLATE utf8_spanish_ci DEFAULT NULL,
`surname` varchar(25) COLLATE utf8_spanish_ci DEFAULT NULL,
`email` varchar(200) COLLATE utf8_spanish_ci DEFAULT NULL,
`password` varchar(200) COLLATE utf8_spanish_ci DEFAULT NULL,
`year_birth` int(2) DEFAULT NULL,
`month_birth` int(2) DEFAULT NULL,
`day_birth` int(2) DEFAULT NULL,
`sex` int(2) DEFAULT NULL,
`avatar` varchar(200) COLLATE utf8_spanish_ci DEFAULT NULL,
PRIMARY KEY (`id_user`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `usuarios`
--
LOCK TABLES `usuarios` WRITE;
/*!40000 ALTER TABLE `usuarios` DISABLE KEYS */;
INSERT INTO `usuarios` VALUES (1,'MÃguel','Cañellas','canellasmiguel2000@gmail.com','d123c4898730d77d2672621636b8376822bf7cd5df07f4bc1d0d13em7pr2f221e0223kf7dfd9f7d0847149efa5e4afzcd2a54af4uv8b3776e1c4d7f82be09a10d7',2000,6,4,1,'78180511T20198102052.jpeg');
/*!40000 ALTER TABLE `usuarios` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2019-08-26 23:27:55
array(1) { [0]=> array(2) { ["@@character_set_client"]=> string(6) "latin1" [0]=> string(6) "latin1" } }
Cita de: EdePC en 27 Agosto 2019, 03:15 AM
- Me he descargado una versión viejita de MySQL 5.6.35, y todo funciona correctamente también, jeje no logro replicar tu problema XD.
- Por cierto, el dump lo hago ejecutando:
function Conexion($user, $pass)
{
try
{
$con = new PDO('mysql:host=localhost;dbname=datos', $user, $pass);
echo $con->query('SELECT @@character_set_client');
return $con;
}
catch(PDOException $e)
{
return $e->getMessage();
}
}
function Conexion($user, $pass)
{
try
{
$con = new PDO('mysql:host=localhost;dbname=basedatos', $user, $pass);
$con->character_set_name();
return $con;
}
catch(PDOException $e)
{
return $e->getMessage();
}
}
function Buscar_Usuarios_Ajax($search)
{
$con = Conexion("root", "");
echo mysqli_character_set_name($con);
$consulta = $con->prepare("SELECT id_user, name, surname, avatar FROM usuarios WHERE CONCAT(name, ' ', surname) LIKE '%".($search)."%' ORDER BY CONCAT(name, ' ', surname) ASC LIMIT 6");
$consulta->execute();
$resultados = $consulta->fetchAll();
return $resultados;
}
function Buscar_Usuarios_Ajax($search)
{
$con = Conexion("root", "");
echo $search; // imprimo la busqueda (texto)
$search = utf8_encode($search);
echo $search; // imprimo la busqueda (texto) pero codificada a utf8
$consulta = $con->prepare("SELECT id_user, name, surname, avatar FROM usuarios WHERE CONCAT(name, ' ', surname) LIKE '%".($search)."%' ORDER BY CONCAT(name, ' ', surname) ASC LIMIT 6");
$consulta->execute();
$resultados = $consulta->fetchAll();
echo $resultados[0]['name']; // imprimo el nombre encontrado
return $resultados;
}