Php 原则2.1和表utf-8编码

Php 原则2.1和表utf-8编码,php,database,doctrine-orm,Php,Database,Doctrine Orm,有人能告诉我如何强制条令使用UTF-8编码和utf8\u polish\u ci创建数据库表吗?我的条令配置文件具有以下db配置参数: $conn = array( 'driver' => 'pdo_mysql', 'dbname' => 'test', 'user' => 'root', 'password' => '*****', 'charset' => 'utf8', 'driverOptions' =>


有人能告诉我如何强制条令使用UTF-8编码和
utf8\u polish\u ci
创建数据库表吗?我的条令配置文件具有以下db配置参数:

$conn = array(
    'driver' => 'pdo_mysql',
    'dbname' => 'test',
    'user' => 'root',
    'password' => '*****',
    'charset' => 'utf8',
    'driverOptions' => array(1002=>'SET NAMES utf8'));

尽管如此,它仍在使用默认编码创建表:
latin1
latin1\u swedish\u ci

如果在数据库中设置它,doctrine只使用数据库的默认值。请看下面的问题

4.1.1。如何设置MySQL表的字符集和排序规则?

不能在注释、yml或xml映射文件中设置这些值。要使数据库使用默认字符集和排序规则,您应该将MySQL配置为使用默认字符集,或者使用字符集和排序规则详细信息创建数据库。通过这种方式,它们被继承到所有新创建的数据库表和列中


创建数据库时,应按如下方式创建:

创建数据库`your\u table\u name`默认字符集utf8 COLLATE utf8\u polish\u ci


这将允许您创建的表继承字符集并整理值

使用下面的代码来设置条令整理、字符集和引擎:

/**
* @ORM\Table(name="temporary", options={"collate"="utf16_latin_ci", "charset"="utf16", "engine"="MyISAM"})  
* @ORM\Entity
*/

首先,为什么要使用条令创建表?无论您使用哪种数据库管理工具,您都会这样做吗?@Pekka-让Doctrine2为您管理DDL语句是在Doctrine2中执行操作的首选方式。orm:schema工具:[创建|更新]是命令行工具的相关命令。我可以在哪里设置数据库的默认值?