2012-08-22 71 views
1

我與來自MAC OS導出CSV文件工作 - 文件製作專業節目。 CSV似乎格式正確。它導入到PHP和我的MySQL數據庫好吧。它還導入到使用的LibreOffice Calc中我的Ubuntu操作系統。但是,在所有情況下,我最終都會遇到奇怪的角色。它應該是一個UTF-8字符集,但我不知道。任何人都可以幫助解釋發生了什麼樣的轉化?PHP fgetcsv:奇怪的字符時讀取MAC OS導出CSV文件

例子:

...先驅打印,[1880’的?]。第一個也是唯一版本...

....這manufacturer’的使用....

編輯參與的優秀遺物:

綜觀上述的部分:

[1880’s?] 

manufacturer’s 

lost. 




od -ctx1 part.txt 

0000000 [ 1 8 8 0 342 200 231 s ? ] \r m a n u 

     5b 31 38 38 30 e2 80 99 73 3f 5d 0d 6d 61 6e 75 

0000020 f a c t u r e r 342 200 231 s \r l o s 

     66 61 63 74 75 72 65 72 e2 80 99 73 0d 6c 6f 73 

0000040 t .  \v \r \r 

     74 2e 20 0b 0d 0d 

0000046 
+0

是輸出的編碼定義爲相同文本的編碼? – alex

+0

嘗試使用類似'od -ctx1 file.txt'的方式查看數據的轉儲,這會向您顯示C風格轉義字符以及十六進制轉儲。有了這一點,你應該能夠確定這是否是UTF8或別的東西。 – ghoti

+0

在文本編輯器中打開CSV文件,讓文本編輯器以不同的編碼解釋文件。當它看起來沒問題時,你已經找到了文件實際所在的編碼。 – deceze

回答

0

編碼確實是UTF8和你的引號是正確的有:

http://www.tachyonsoft.com/uc0020.htm

您看到的轉換看起來像UTF8解釋爲ISO-8859-1 [5]或Latin1,因此在您閱讀它後,請檢查您的MySQL是否使用UTF8作爲字符集,並且提取階段將其保存爲UTF8(例如,如果你將數據發送到網頁廣告ISO-8859-15,你會看到正是 - 的歐元符號後面的垃圾)。