我正在使用codeigniter。
運行以下查詢後:無法顯示從AES_DECRYPT檢索到的特殊字符
$names = this->db->query("SELECT AES_DECRYPT(nombre,'".$key."') AS nombre FROM places")
我得到的var_dump下面的輸出($名)
[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編碼,特殊字符仍然顯示爲 。
值得一提的是,我在加密數據庫之前沒有問題。
http://stackoverflow.com/questions/279170/how-to-support-utf-8-completely-in-a-web-application – Sammitch
我有試過所有的那 – hjsjar
你說「我已經嘗試了所有這些」,但你真的讀過它嗎? MySQL UTF-8編碼是***不是UTF-8編碼。我假設你的數據列是「blob」類型的?和/或「unicode」?請詳細說明你的表格結構。 – Martin