2012-05-04 75 views
5

我檢索從MySQLMYSQL - 土耳其字符

DATAS這通常是我在DB

這通常是我在DB

Seçimler, Şirketler ve Siyasi Partiler 

它打印

Se�imler, ?irketler ve Siyasi Partiler 

我使用sql yog並在我的db中更改了一些首選項

我設置字符集爲UTF8和整理是utf8_turkish_ci

,但仍然取得這樣的

Se�imler, ?irketler ve Siyasi Partiler 

爲什麼DATAS?有什麼問題 ?

+0

[從MySQL錶轉換HTML外國字符爲UTF-8字符]的可能重複(http://stackoverflow.com/questions/7003242/converting-html-foreign-characters-from-mysql-tables-to-utf -8個字符) – snnlankrdsm

回答

10

這個問題聽起來像你錯過了指定一個字符編碼的地方。要解決這個問題,只要確保你已經設置字符編碼爲UTF-8 everywere(它實際上並不需要是utf-8,只是相同無處不在 - 但如果你弄亂了某些東西,並且需要無論如何改變一些地方,我強烈推薦使用utf-8):

  • 告訴MySQL使用utf-8。要做到這一點,把它添加到你的我的。CNF:

    collation_server = utf8_unicode_ci 
    character_set_server = utf8 
    
  • 與MySQL進行交互前,送出這兩querys:

    ​​3210

    ,或者讓PHP這樣做afteropening連接:

    mysql_set_charset('utf8', $conn); 
    
  • 集UTF-8作爲數據庫

    CREATE DATABASE `my_db` DEFAULT CHARACTER SET 'utf8'; 
    
  • 默認字符集爲表做同樣的:

    CREATE TABLE `my_table` (
        -- ... 
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 
    
  • 假設客戶端是一個瀏覽器,以utf-8的形式提供你的內容正確的標題:

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

    ,真正做到確保瀏覽器的理解,加元標記:

    <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> 
    
  • ,最後但並非最不重要的,告訴使用瀏覽器提交表單的UTF-8

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

我真的很驚訝的MySQL,因爲所有功能設置爲UTF-8。現在,問題已解決.NAMES設置爲utf8。 – snnlankrdsm

1

你需要提及你的選擇查詢Charset to UTF8了。

​​3210
1

做什麼區別對我來說是增加這些線路:

collat​​ion_server的= utf8_unicode_ci

被character_set_server = UTF8

到my.ini文件(在末尾)我已經嘗試了其他一切,但都是失敗的,直到我做出這個改變。這真的是一個很好的幫助。謝謝oezi。