【发布时间】:2017-01-07 02:05:43
【问题描述】:
我正在使用 codeigniter。
运行以下查询后:
$names = this->db->query("SELECT AES_DECRYPT(nombre,'".$key."') AS nombre FROM places")
我从 var_dump($names) 得到以下输出
[43]=>
array(1) {
["nombre"]=>
string(41) "Industriales de Campeche"
}
[44]=>
array(1) {
["nombre"]=>
string(67) "Evaristo Garc�a ESE"
}
[45]=>
array(1) {
["nombre"]=>
string(39) "San Jose Popay�n"
在 phpmyadmin 上的查询结果如下:
如您所见,包含特殊字符的字段以十六进制表示。当我使用这个工具http://www.rapidtables.com/convert/number/hex-to-ascii.htm 时,我可以毫无问题地转换十六进制字段(显示特殊字符),但问题是我不能让它在 codeigniter 中工作。即使我使用的是 utf-8 编码,特殊字符仍然显示为 �。
值得一提的是,在加密数据库之前我没有遇到任何问题。
【问题讨论】:
-
我都试过了
-
你说“我都试过了”,但你真的读了吗? MySQL utf-8 编码是 not UTF-8 编码。我假设您的数据列是
blob类型?和/或unicode?请详细说明您的表结构。
标签: php mysql codeigniter encryption