我有这个多字节阿拉伯文本字符串:
فتكات اكبر تجمع عربي للنساء فقط صحبة وإسلاميات واستشارات وطبخ وزواج وميك اب وتخسيس
وفضفضة وازياء ومحجبات وهوايات ومول وكليسش مال يهم المرأةفتكات اكبر تجمع عربي للنساء فقط
صحبة وإسلاميات واستشارات وطبخ وزواج وميك اب وتخسيس وفضفضة وازياء ومحجبات وهوايات ومو
在字符串上运行 PHP mb_strlen 函数时,我得到了 255 个字符,这是正确的。
然后我尝试将字符串插入到带有 VARCHAR(255)
的列中使用PHP
然后我使用 PHP 再次从数据库中选择它,输出如下:
تكات اكبر تجمع عربي للنساء فقط صحبة وإسلاميات واستشارات وطبخ وزواج وميك اب وتخسيس وفضفضة
وازياء ومحجبات وهوايات ومول وكليسش مال يهم المرأ�
如您所见,几乎一半的字符串已被截断。我不知道这与 MYSQL 或 PHP 输出有关。
这是我的数据库规范: MYSQL 5+,引擎=InnoDB,默认字符集=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" />
关于php - MYSQL字符计数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25979010/