2014-03-24 48 views
0

我有一个网站在codeigniter开发,我想插入一个记录在我的数据库中的表与utf8字段。
的问题是,当我插入表里面的东西我看到:奇怪的字符插入表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); 
} 
+0

您可以检查该串与['mb_detect_encoding()']编码(http://www.php.net/manual/en/function.mb-detect-encoding.php)?然后尝试用['iconv()'](http://www.php.net/manual/en/function.iconv.php)进行转换。 – bostaf

回答

1

该数据不是UTF-8。它是UCS-2或UTF-16。 UCS-2是UTF-16的一个子集,因此将其视为UTF-16应该可以做到。

您可以使用iconv将其转换。

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