我從一個來自excel的CSV文件導入數據,但我似乎無法正確插入我的數據。此數據包含法語重音字符,如果我用OpenOffice打開CSV(我不使用Excel),我只需選擇UTF-8,數據就會轉換並顯示正常。Mysql插入被怪異字符編碼截斷的文本數據
如果我嘗試讀取到php內存中,我可以看到他們是UTF-8編碼的字符串,如果我使用MB_DETECT_ENCODING。我連接到數據庫,並使用指定所有UTF-8字符集:
mysql_query('SET character_set_results = "utf8", character_set_client = "utf8", character_set_connection = "utf8", character_set_database = "utf8", character_set_server = "utf8"');
,我可以證明,我的數據庫包含UTF-8隻字段和表。
會發生什麼情況是我的內容在第一個重音字符處被截斷。但是,這似乎只發生在我的PHP腳本中。我輸出所有的數據到瀏覽器,如果我複製INSERT語句,它會插入整個數據。
在php和瀏覽器輸出之間可能會發生一些事情,但我可以證明它不在腳本編程中......到目前爲止,我能夠通過HTMLENTITY'ing我所有的數據來繞過這個問題,但問題是,我的搜索引擎會首席運營官COO-瘋狂,因爲那......
任何理由,你能抽出將非常感激的方式...
編輯#1:
我搜索了CSV數據的默認excel編碼,發現它是CP1252。我嘗試過使用ICONV('CP1252','UTF-8 // TRANSLIT',$ data),現在,重音字符似乎很適合。我將在腳本中的任何地方嘗試它,看看我的所有重音字符問題是否已修復併發布解決方案(如果有)...
我在任何地方都使用UTF-8,並且CSV中的數據應該是UTF-8,因爲我在OpenOffice/LibreOffice中用UTF-8打開它。 –
嘗試粘貼「」「顯示變量(如」char% ;「」「mysql query – abcde123483