相关疑难解决方法(0)

PDO + MySQL和破坏的UTF-8编码

我在PHP中使用带有MySQL数据库的PDO库,但如果我插入以UTF-8编码的任何数据,如阿拉伯语单词,则将其插入到数据库中,但是?????????.

在我自己的框架中,在创建PDO连接后,我发送了两个查询 - SET NAMES utf8SET CHARACTER SET utf8.它仍然无法正常工作.

例:

loadclass('PDO', array(
    sprintf(
        'mysql:host=%s;port=%s;dbname=%s',
        confitem('database', 'host'),
        confitem('database', 'port'),
        confitem('database', 'name')
    ),
    confitem('database', 'username'),
    confitem('database', 'password'),
    array('PDO::ATTR_PERSISTENT' => confitem('database', 'pconnect'))
));
$this->query('SET NAMES ' . confitem('database', 'charset'));
$this->query('SET CHARACTER SET ' . confitem('database', 'charset'));
Run Code Online (Sandbox Code Playgroud)

解决方法:使用json_encode函数在将数据插入数据库之前转换数据,并json_decode在获取后使用它进行解码.这就是我现在这样做的方式.

php mysql pdo character-encoding

30
推荐指数
2
解决办法
6万
查看次数

显示 而不是£

当从mysql数据库中提取数据时,符号 显示而不是£

有问题的字段整理为utf8_general_ci

我也有<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />页面的head标签

有什么想法吗?

php mysql encoding character-encoding

12
推荐指数
3
解决办法
797
查看次数

html php meta charset UTF-8无法正常工作?

可能重复:
浏览器显示 而不是'

我有点卡在一个几乎只有html的php文件中.我只使用PHP将联系表单中的信息发送到我的邮件地址.

在localhost上开发网站时一切都很好.上传到我的服务器后,它会弄乱特殊字符.

我的meta标签看起来像这样:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Run Code Online (Sandbox Code Playgroud)

如果有人能帮助我,我将非常感激.

html php meta utf-8 character-encoding

2
推荐指数
1
解决办法
4万
查看次数

标签 统计

character-encoding ×3

php ×3

mysql ×2

encoding ×1

html ×1

meta ×1

pdo ×1

utf-8 ×1