我有問題從斯拉夫語言獲取字符,如Š
。當它們包含在輸出中時,它們顯示爲菱形問號符號。某些字符無法顯示使用UTF-8
我的數據庫連接設置爲使用爲utf8:
@mysql_query("SET NAMES 'utf8_unicode_ci' COLLATE 'utf8_unicode_ci'");
大多數多語言字符出現在屏幕上。我不確定我是否已經正確設置了字符集。它似乎工作在匈牙利語,西班牙語,葡萄牙語,只是不是斯拉夫!
問題在哪裏?
該字段中有許多可能的字符,這使得不可能選擇像latin2這樣的特定非utf8字符集。
這是一個全新的數據庫,從頭開始創建。 phpMyAdmin顯示屏幕上的字符,所以我猜這個問題不是用MySQL,而是PHP。但是,我已經設置了正確的utf8聲明。
請問你可以用SHOW CREATE TABLE的結果編輯你的問題嗎?另外,您是否確定*您正在使用正確的「SET NAMES」查詢?你使用的那個看起來不正確 - 你在兩個位置都指定了一個*排序規則*名稱(「_ci」),這是無效的。 – Charles 2011-04-02 05:01:31
當你說「屏幕」你在說瀏覽器,或者你在你的編輯器中用PHP說話嗎?如果它在你的編輯器中,那麼你需要確保你的編輯器可以處理這些編碼。例如在vim中,你需要':set enc = utf-8'。 – 2011-04-02 05:20:19
感謝您的幫助!奇怪的是,儘管在編輯器中它*看起來*要顯示字符(禮貌地問它,否則它顯示ascii),在中間,在上傳到服務器,字符飛走...服務器說它的工作原理在UTF8和SQL數據似乎正確設置...在哪裏可以有毛刺? (我從來沒有在UTF工作,所以我不知道我可以有什麼毛病,因爲) – BlondieMarlenne 2011-04-04 15:30:26