用php实现MySQL数据库编码
我用utf8\U general\U ci对所有表和数据库进行编码,数据库中的所有数据都正常。 当我使用PHP(PDO)选择数据并在CLI中打印时(以及当我将这些数据保存到db中时),文本包含问号:用php实现MySQL数据库编码,php,mysql,encoding,utf-8,Php,Mysql,Encoding,Utf 8,我用utf8\U general\U ci对所有表和数据库进行编码,数据库中的所有数据都正常。 当我使用PHP(PDO)选择数据并在CLI中打印时(以及当我将这些数据保存到db中时),文本包含问号: Raw, zagra? te? rol? wiceprezydenta 为什么??怎么了? 我尝试了设置名称的解决方案,但不起作用。 我的部分代码: <?php setlocale(LC_ALL, 'pl_PL'); ini_set('default_charset','utf-8'); m
Raw, zagra? te? rol? wiceprezydenta
为什么??怎么了?
我尝试了设置名称的解决方案,但不起作用。
我的部分代码:
<?php
setlocale(LC_ALL, 'pl_PL');
ini_set('default_charset','utf-8');
mb_internal_encoding("UTF-8");
putenv('LANG=pl_PL.UTF-8');
$db = new PDO('mysql:host=localhost;dbname=nameofdb;charset=utf-8','root','******', array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
// body...
您的$db
连接字符串中的字符集应该是utf8
而不是utf-8
,如下所示:
$db = new PDO('mysql:host=localhost;dbname=nameofdb;charset=utf8','root','****',
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
您的CLI是否正确解释UTF-8…?是。问题是,当我从浏览器运行脚本时(当然,将header charset设置为utf8),您是否考虑了所有内容?谢谢,但不起作用,没有任何更改。