2010-09-10 114 views
0

我在我的計算機上有一個文件,我想用PHP複製到MySQL表中。當我打開文件時,內容看起來很好,就像普通文本一樣 - 但是,當我嘗試使用PHP讀取文件或插入MySQL表格時,我會遇到各種各樣的時髦字符。我想也許這是一個UTF-8的問題,所以我嘗試設置頭字符編碼問題和PHP - 這是什麼編碼?

header('Content-type: text/html; charset=utf-8'); 

然後呼應的file_get_contents()檢索到的內容,但沒有任何區別 - 輸出仍然是時髦的。然後我想也許這是一個CP1252問題,所以我嘗試使用ヶ輛(),但也沒有幫助:

htmlentities($str, ENT_QUOTES, 'cp1252') 

我再上傳文件到網站(here)。在服務器上,當我'抓住'文件時,它再次看起來很正常,但在Firefox中,當我打開它時,我得到了時髦的字符。下面是它看起來像我的截圖:screenshot

奇怪的是我複製完全相同的文件到另一個網站的文件夾,在同一臺服務器上,可是當我打開這個文件,在新的URL(見here)相同的文件在Firefox中看起來不同 - 仍然是一些時髦的角色,但更少。不同外觀的屏幕截圖:screenshot

有沒有人知道這裏發生了什麼,以及我如何清理角色?該文件使用什麼字符編碼 - 爲什麼當從服務器上的一個網站複製到另一個網站時,同一文件在Firefox中看起來有所不同?

回答

1

你的文件是UTF-16;嘗試使用它作爲Firefox中的編碼。它看起來更加正確,儘管仍然有一些流浪的CJK字符,這可能是因爲你的一些字符的錯誤排列順序。

請記得在所提供的答案中接受對所有問題的答案; Stack Overflow上的很多人可能不會繼續回答你的問題,缺乏聲譽激勵。

+0

謝謝。奇怪的是,似乎第二個URL在Firefox中以UTF-16自動打開,而第一個URL以UTF-8自動打開。這說明截圖之間的差異。我想知道爲什麼會這樣? – Tristan 2010-09-11 07:46:30

1

我以前有過這個問題。有些隱藏的字符不能在某些IDE中顯示。

我能夠通過在記事本中打開文件並複製文本,然後刪除文件來解決此問題。然後我從頭開始創建文件,並以純文本形式粘貼。

你不想複製與文字板類似的文字,因爲這也會複製隱藏的字符。

編輯:

您也可以嘗試接受您以前的一些問題答案的人民,你會得到人們願意提供幫助,如果他們知道你會提供更多的聲譽回覆。

+0

謝謝。我希望能夠自動清理這些角色,但我會爲此打開一個新問題。我會回去選擇我以前的問題的答案:) – Tristan 2010-09-11 07:48:43