2012-05-04 11 views
5

recupero datas más de MySQLMySQL - carácter turco

Esto es normalmente lo que tengo en dB

Esto es normalmente lo que tengo en db

Seçimler, Şirketler ve Siyasi Partiler 

imprime

Se�imler, ?irketler ve Siyasi Partiler 

Uso sql yog y cambio algunas preferencias en mi db

me puse juego de caracteres y colación a UTF8 es utf8_turkish_ci

pero aún recuperar datas más que como

Se�imler, ?irketler ve Siyasi Partiler 

por qué? Cuál es el problema ?

+0

posible duplicado de [Conversión de caracteres extranjeros HTML de tablas MySQL a caracteres utf-8] (http://stackoverflow.com/questions/7003242/converting-html-foreign-characters-from-mysql-tables-to-utf -8-characters) – snnlankrdsm

Respuesta

10

este problema parece que te has perdido para especificar una codificación de caracteres en alguna parte. para solucionar esto, simplemente asegúrate de haber configurado la codificación de caracteres en utf-8 cada vez que sea (en realidad no necesita ser utf-8, solo el mismo en todas partes, pero si has estropeado algo y necesitas para cambiar algunos lugares de todos modos, recomiendo utilizar utf-8):

  • decirle a MySQL que use utf-8. para hacer esto, agrega esto a tu my.CNF:

    collation_server = utf8_unicode_ci 
    character_set_server = utf8 
    
  • antes de interactuar con MySQL, enviar estos dos querys:

    SET NAMES 'utf8'; 
    CHARSET 'utf8'; 
    

    o, alternativamente, deje php hacer esto afteropening la conexión:

    mysql_set_charset('utf8', $conn); 
    
  • UTF-8 como el conjunto de caracteres por defecto para su base de datos

    CREATE DATABASE `my_db` DEFAULT CHARACTER SET 'utf8'; 
    
  • hacer lo mismo para las tablas:

    CREATE TABLE `my_table` (
        -- ... 
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 
    
  • suponiendo que el cliente es un navegador, sirve su contenido como utf-8 y el la cabecera correcta:

    header('Content-type: text/html; charset=utf-8'); 
    

    a ser realmente de que el navegador entiende, añadir un meta-tag:

    <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> 
    
  • y, por último pero no menos importante, decir la navegador para enviar formularios usando utf-8

    <form accept-charset="utf-8" ...> 
    
+0

Realmente me sorprendió con MYSQL, porque todas las características estaban configuradas en UTF8. Ahora, el problema está resuelto. Los nombres están configurados en utf8. – snnlankrdsm

1

es necesario mencionar Charset to UTF8 en su consulta de selección también.

SET NAMES 'utf8'; 
CHARSET 'utf8'; 
1

Lo que hizo la diferencia para mí fue la de añadir estas líneas:

collation_server = utf8_unicode_ci

character_set_server = UTF-8

a my.ini archivo (al final del documento) He intentado todo lo demás, pero todos fallaron hasta que hice este cambio. Realmente ha sido de gran ayuda. Gracias oezi.

Cuestiones relacionadas