我有一個輸入,用戶可以(並且已經並將一直)從MSword粘貼數據;特別的人物,如©
®
™
文件中的字符編碼錯誤
當我的價值添加到使用html_entity_decode($foo, ENT_NOQUOTES, 'UTF-8');
當我從它呈現在畫面精細數據庫系統讀取,但數據庫系統時,我的數據寫入一個文件(使用fputscsv
)並附加到電子郵件生成的csv文件(在Excel中打開)它出來就像版權所有©。
有關如何以正確格式獲取文件的任何想法?
我有一個輸入,用戶可以(並且已經並將一直)從MSword粘貼數據;特別的人物,如©
®
™
文件中的字符編碼錯誤
當我的價值添加到使用html_entity_decode($foo, ENT_NOQUOTES, 'UTF-8');
當我從它呈現在畫面精細數據庫系統讀取,但數據庫系統時,我的數據寫入一個文件(使用fputscsv
)並附加到電子郵件生成的csv文件(在Excel中打開)它出來就像版權所有©。
有關如何以正確格式獲取文件的任何想法?
找到解決方案;事實證明,這是一個字符編碼問題(我在指責微軟,因爲在Notepad ++中打開該文件時它很好)。
將數據添加到文件時使用iconv轉換數據的字符編碼。
示例;
foreach ($data_row as $k => $cell) {
$data_row[$k] = iconv("UTF-8", "ISO-8859-1//TRANSLIT", $cell);
}
嘗試在寫入CSV字符串之前將字節順序標記寫入文件。
$byte_order_mark = "\xEF\xBB\xBF";
$contents = $byte_order_mark . $csv_string;
file_put_contents($path_to_csv_file);
我不清楚原始用戶數據是什麼。他們是直接放置©符號,還是將「©」放入內容中? – datasage 2013-04-05 15:34:21
他們把©直接放在(從字粘貼) – Rooneyl 2013-04-08 06:33:32