Phalcon框架在读取和写入数据库时产生中文乱码

关于Phalcon框架在读取和写入数据库时产生中文乱码,

问题可能发生在中文日文韩文混排使用UTF-8编码时造成,读取数据库时,双字节文字显示为问号??时。

首先,要保持数据库,表,字段为utf-8编码格式。

其次,要确保php文件为utf-8编码格式。

如果依然不能解决,造成的显现可能是采用pdo_mysql读取和写入的汉字正常,

采用命令行,或者phpmyadmin写入的数据,使用pdo_mysql中读取是问号??

采用pdo_mysql写入的数据在命令行,或者phpmyadmin读取时是乱码。

这种情况下需要调整Phalcon框架创建pdo_mysql连接时设置编码

如下:

$connection = new \Phalcon\Db\Adapter\Pdo\Mysql(array(
	"host" => $config->database->host,
	"username" => $config->database->username,
	"password" => $config->database->password,
	"dbname" => $config->database->name,
	"charset" => "utf8"
));

创建连接时加入:"charset" => "utf8"

也就是说在创建连接时可以随意设置编码格式,不过编码必须是要在 

/usr/share/mysql/charsets/Index.xml 文件中存在的编码

<charset name="utf8">
  <family>Unicode</family>
  <description>UTF-8 Unicode</description>
  <alias>utf-8</alias>
  <collation name="utf8_general_ci"	id="33">
   <flag>primary</flag>
   <flag>compiled</flag>
  </collation>
  <collation name="utf8_bin"		id="83">
    <flag>binary</flag>
    <flag>compiled</flag>
  </collation>
</charset>

以上是该文件的一段代码。

-----完了-----


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值