表utf8中插入了奇怪的字符

时间:2014-03-24 15:14:23

标签: php mysql sql codeigniter utf-8

我有一个在codeigniter中开发的网站,我想在一个包含utf8字段的表格中将数据插入我的数据库中。
问题是,当我在表格中插入内容时,我看到:

�"�h�t�t�p�:�/�/�I�m�a�g�e�1�.�u�r�l�f�o�r�i�m�a�g�e�s�.�c�o�m�/�D�e�f�a�u�l�t�/�8�8�0�4�/�2�3�6�9�2�2�6�2�-�1�8�4�3�3�8�5�2�6�6�.�j�p�g�"�

还有更多角色。真正的字符串是一个简单的路径。我不知道字符串的格式,因为它来自外部服务器。

这是我插入记录的查询。我从xml中获取字符串,如果我在页面中打印它,我会看到正确的字符串。每当我在数据库中检查时都会出现问题:

foreach($img->childNodes as $node){
     $data = array(
         'image'=>$node->getAttribute('path'),
     );
     $this->db->insert('hotel_images',$data);
}

1 个答案:

答案 0 :(得分:1)

该数据不是UTF-8。它是UCS-2或UTF-16。 UCS-2是UTF-16的子集,因此将其视为UTF-16应该可以解决问题。

您可以使用iconv转换它。

$data = iconv("UTF-16", "UTF-8", $data);