Tengo una base de datos llena de valores como ♥•â—♥ Dhaka ♥•â—♥
(que debería ser) ya que no especificó la intercalación mientras creaba la base de datos.
Ahora quiero arreglarlo. No puedo recuperar los datos de donde los obtuve en primer lugar. Así que estaba pensando si sería posible buscar los datos en un script php y convertirlos a los caracteres correctos.
He cambiado la intercalación de la base de datos y los campos a utf8_general_ci
..Conversión de latin1_swedish_ci a utf8 con PHP
Respuesta
La intercalación NO es la misma que el juego de caracteres. La intercalación solo se usa para ordenar y comparar texto (por eso hay un término de idioma allí). El conjunto de caracteres real puede ser diferente.
La falla más común no está en la base de datos sino en la conexión entre PHP y MySQL. El juego de caracteres predeterminado para la conexión suele ser ISO-8859-1. Debe cambiar eso lo primero que haga después de connectiong, utilizando la consulta SQL SET NAMES 'utf-8';
o la función mysql_set_charset.
También verifique el conjunto de caracteres de sus tablas. También puede estar mal si no ha especificado UTF-8 para empezar (una vez más: esto no es lo mismo que la intercalación). Pero asegúrese de hacer una copia de seguridad antes de cambiar algo aquí. MySQL intentará convertir el juego de caracteres del anterior, por lo que puede necesitar volver a cargar los datos de la copia de seguridad si ha guardado datos UTF-8 en tablas ISO-8859-1.
Ok. ¿Estos caracteres '♥ ● ● ♥' se guardarán exactamente así en el conjunto de caracteres 'utf8_general_ci'? ¿Y cómo sé qué juego de caracteres se utilizó cuando se guardaron estos caracteres 'â ™ ¥ â-¢ â-¥'? –
utf8_general_ci no es un conjunto de caracteres, es una intercalación. El juego de caracteres real se llama utf-8 y es otra propiedad de la tabla. utf-8 puede codificar la mayoría de los caracteres existentes, por lo que sí (de hecho, SO usa UTF-8 por lo que no podría mostrarme los caracteres si la respuesta a su pregunta era "no"). En cuanto a la segunda pregunta, comience por verificar qué juego de caracteres tenía su mesa y la conexión cuando guardó el texto. –
Gracias. Lo estoy obteniendo ahora. :) Configurar mysql_set_charset a utf8 ayuda a las nuevas entradas. Mirando los otros detalles. :) –
Me gustaría ver en mb_detect_encoding() y mb_convert_encoding() y ver si pueden ayudarte.
Cuando estoy usando mb_detect_encoding en 'â ™ ¥ â-â ™ ¥ Dhaka â ™ ¥ â-â ™ ¥' y '♥ ● ● ♥', en ambos casos se dice que es UTF- 8. ¿Ahora qué hacer? –
Suena como un problema de codificación roto. Lea esto: http://stackoverflow.com/questions/1344692/i-need-help-fixing-broken-utf8-encoding – AlienWebguy
- 1. Conversión de UTF8 a ANSI con Ruby
- 2. Conversión de UTF8 a ASCII
- 3. UTF8 a/desde conversión de ancho de pila en STL
- 4. Conversión de caracteres UTF8 escapados a su forma original
- 5. php form submit utf8?
- 6. Convierta UTF8 a UTF16 con iconv
- 7. Convierte caracteres utf8 a iso-88591 y vuelve a PHP
- 8. PHP: convertir la salida de curl_exec a UTF8
- 9. ¿Cómo usar iconv para la conversión de utf8?
- 10. conversión de texto html a una imagen con php
- 11. Conversión de código con funciones anónimas a PHP 5.2
- 12. Flujo de trabajo UTF8 PHP, MySQL resume
- 13. Conversión de PDF a JPG usando PHP
- 14. Convierte latin1 a UTF8
- 15. Conversión de código Python a PHP
- 16. ¿Cómo forzar a XPath a usar UTF8?
- 17. php json_encode utf8 char problema (mysql)
- 18. codificación Java UTF8
- 19. Cómo truncar una cadena UTF8 en PHP?
- 20. Decodificación UTF8 con NSString
- 21. MySQL Colación: latin1_swedish_ci Vs utf8_general_ci
- 22. UTF-8 - PHP y MySQLi UTF8
- 23. PHP LaTeX a PDF Conversión/compilación
- 24. ¿Convertir cadena latin1 a utf8?
- 25. Conversión de moneda usando PHP
- 26. Cómo convertir UTF8 a Unicode
- 27. Conversión de PDF a Word de alta calidad en PHP?
- 28. Conversión de un conjunto de PHP a variables de clase
- 29. Conversión de la matriz de resultados de PHP a JSON
- 30. PHP: Problema con la conversión de caracteres strtr
¿cómo puedo obtener el texto original de â ™ ¥ â â ¢ â-â ™ ¥? –