MYSQL错误的字符数

时间:2014-09-22 16:38:46

标签: php mysql sql database pdo

我有这个多字节的阿拉伯文字符串:

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

在字符串上运行PHP mb_strlen函数时,我得到255个字符是正确的。

然后我尝试使用PHP将字符串插入到VARCHAR(255)的列中 然后我使用PHP从数据库中再次选择它,以下是输出:

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

如您所见,几乎一半的字符串已被截断。我不知道这与MYSQL或PHP输出有关。

这是我的数据库规格: MYSQL 5 +,ENGINE = InnoDB,DEFAULT CHARSET = utf8,utf8_general_ci

在PHP中,我使用PDO语句连接,插入和从数据库中选择。

在插入或选择数据库或在插入或选择期间必须使用的任何PHP函数时,是否需要使用额外的查询?

1 个答案:

答案 0 :(得分:2)

我找到了答案:

只需将以下参数添加到MYSQL PDO连接:

mysql:charset=utf8;

当然要确保对数据库使用DEFAULT CHARSET = utf8,utf8_general_ci 页面上的这个元标记:

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