2013-04-05 83 views
0

我有一個輸入,用戶可以(並且已經並將一直)從MSword粘貼數據;特別的人物,如©®™文件中的字符編碼錯誤

當我的價值添加到使用html_entity_decode($foo, ENT_NOQUOTES, 'UTF-8');

當我從它呈現在畫面精細數據庫系統讀取,但數據庫系統時,我的數據寫入一個文件(使用fputscsv)並附加到電子郵件生成的csv文件(在Excel中打開)它出來就像版權所有©

有關如何以正確格式獲取文件的任何想法?

+0

我不清楚原始用戶數據是什麼。他們是直接放置©符號,還是將「©」放入內容中? – datasage 2013-04-05 15:34:21

+0

他們把©直接放在(從字粘貼) – Rooneyl 2013-04-08 06:33:32

回答

0

找到解決方案;事實證明,這是一個字符編碼問題(我在指責微軟,因爲在Notepad ++中打開該文件時它很好)。

將數據添加到文件時使用iconv轉換數據的字符編碼。
示例;

foreach ($data_row as $k => $cell) { 
    $data_row[$k] = iconv("UTF-8", "ISO-8859-1//TRANSLIT", $cell); 
} 
0

嘗試在寫入CSV字符串之前將字節順序標記寫入文件。

$byte_order_mark = "\xEF\xBB\xBF"; 
$contents = $byte_order_mark . $csv_string; 
file_put_contents($path_to_csv_file);