MYSQL错误的字符计数


MYSQL wrong character count

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

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

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

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

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

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

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

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

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

我找到了答案:

只需在MYSQL PDO连接中添加以下参数:

mysql:charset=utf8;

当然,确保数据库的DEFAULT CHARSET=utf8,utf8_general_ci页面上的这个元标签:

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