2014-09-22 68 views
0

我有這樣的阿拉伯多字節的文本字符串:MYSQL錯誤的字符數

فتكات اكبر تجمع عربي للنساء فقط صحبة وإسلاميات واستشارات وطبخ وزواج وميك اب وتخسيس 
وفضفضة وازياء ومحجبات وهوايات ومول وكليسش مال يهم المرأةفتكات اكبر تجمع عربي للنساء فقط 
صحبة وإسلاميات واستشارات وطبخ وزواج وميك اب وتخسيس وفضفضة وازياء ومحجبات وهوايات ومو 

當運行字符串PHP mb_strlen功能,我得到255個字符,這是正確的。

然後我試圖將字符串插入一列使用PHP VARCHAR(255)然後我使用PHP再次選擇它從數據庫以下是輸出:

تكات اكبر تجمع عربي للنساء فقط صحبة وإسلاميات واستشارات وطبخ وزواج وميك اب وتخسيس وفضفضة 
وازياء ومحجبات وهوايات ومول وكليسش مال يهم المرأ� 

所以你看,近一半的字符串已被截斷。我不知道這與MYSQL或PHP輸出有關。

這裏是我的數據庫規格: MYSQL 5+,ENGINE = InnoDB的,默認的字符集= UTF8,utf8_general_ci

而在PHP我使用PDO語句連接,插入,然後從數據庫中選擇。

當插入或選擇數據庫或任何在插入或選擇過程中必須使用的PHP函數時,是否需要使用額外查詢?

+2

看吧http://stackoverflow.com/questions/279170/utf-8-all-the-way-through – Mihai 2014-09-22 16:39:40

+0

是否文本AP梨正確(即使截斷)在數據庫中,即當用phpMyAdmin或一些這樣的管理工具看?或者它在數據庫中顯示爲垃圾? – deceze 2014-09-22 16:41:29

+1

@Mhaihai做到了!感謝隊友;) – 2014-09-22 16:51:25

回答

2

我找到了答案:

只需將以下參數添加到MYSQL PDO連接:

mysql:charset=utf8; 

當然,確保有默認字符集= UTF8,utf8_general_ci數據庫 而這個元標籤頁:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />