初始化PDO时-我应该做:charset = UTF8或charset = UTF8MB4吗? [英] when initializing PDO - should I do: charset=UTF8 or charset=UTF8MB4?

查看:366
本文介绍了初始化PDO时-我应该做:charset = UTF8或charset = UTF8MB4吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

初始化PDO时-我应该做:charset = UTF8或charset = UTF8MB4吗?

when initializing PDO - should I do: charset=UTF8 or charset=UTF8MB4 ?

这是我的初始化:

            $dsn = 'mysql:host=example.com;dbname=testdb;port=3306;charset=UTF8';
            $dbh = new \Pdo($dsn, 'username', 'pass');
            $dbh->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);

但是dsn应该是这样的:

But should dsn be this:

$dsn = 'mysql:host=example.com;dbname=testdb;port=3306;charset=UTF8MB4';

如果mysql数据库具有默认字符集UTF8MB4.

if mysql database has a default charset UTF8MB4.

推荐答案

对于PDO和数据库结构,应使用 utf8mb4 .

You should use utf8mb4 for PDO and your database structures.

$dsn='mysql:host=example.com;dbname=testdb;port=3306;charset=utf8mb4';

如果可能的话,请不要忘记设置页面的字符编码. PHP示例:

When possible, don't forget to set the character encoding of your pages as well. PHP example:

mb_internal_encoding('UTF-8');
mb_http_output('UTF-8');

这篇关于初始化PDO时-我应该做:charset = UTF8或charset = UTF8MB4吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆