2012-03-28 28 views
1

當我使用fgetcsv方法從csv文件讀取時,如果它們位於字符串的開頭,它將刪除「Å」和「Ø」。PHP 5.3:fgetcsv和缺失字母

while (($data = fgetcsv($handle, 0, "\t")) !== FALSE) { 
     echo $data[0]."<br />"; 
} 

假設我的CSV僅包含一個ÅbyÅÅÅÅhøjÅ行,輸出是byÅÅÅÅhøjÅ(注缺少的「A」開頭)

什麼想法?

+0

也許看對。’:http://php.net/manual/ en/function.fgetcsv.php:「此功能考慮到區域設置。如果LANG是例如en_US.UTF-8,單字節編碼的文件被這個函數讀錯了。「 – Akarun 2012-03-28 12:28:04

回答

0

我剛纔包裹輸入引號 - 現在的字符串將永遠第一個字符文件的編碼‘和你的PHP腳本」

3

documentation of fgetcsv

注意

區域設置是由該功能考慮在內。如果LANG 是例如en_US.UTF-8,單字節編碼的文件被這個 函數讀錯。

這意味着您需要將字符串的編碼與您的區域設置(或反之亦然)進行匹配。還有一個bug report on bugs.php.net有關輸入字符串中意外字符的不一致處理。

+0

只是一個方面:我們遇到了很多PHP的csv處理問題,我們編寫了我們自己的csv解析器。 – soulmerge 2012-03-28 12:28:46

+0

哈哈,究竟是什麼我在我的評論中說。 – Akarun 2012-03-28 12:29:03