2014-03-24 58 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);