2012-03-04 33 views
1

我有一堆文本文件被寫入Linux服務器,我需要拉入數據庫。我使用file_get_contents()來獲取文件的內容。文本文件中有很多特殊字符(比如:àáâãäåæçèéêëìíîïòóôõöøùùúûü),它們只是沒有正確地進入數據庫(這是專門進入Wordpress網站的)。字符編碼問題 - 文本文件到數據庫

事情我已經檢查或嘗試:

  • 我正在把數據存入數據庫是utf8_general_ci
  • 我用mb_detect_encoding()查看文本文件是什麼;它認爲他們是ISO-8859-1
  • 我用文件-bi檢查SSH中的字符集;它認爲他們是明文/無字符集
  • 我試圖函數utf8_encode()
  • 我試過mb_convert_encoding()
  • 我試過的iconv()
  • 我試過ヶ輛( )
  • 證實,對WP網站上的元標記設置爲輸出UTF-8
  • 服務器的字符編碼(在php.ini中設置)設置爲ISO-8859-1

根據我嘗試了,我也得到了A稍微彎曲一下,或者更常見的是一個長方形,看起來像數字0086。

我很難過 - 如果任何人有任何其他建議,我都耳朵!

回答

1

確保(按重要性排序):

  1. 你的數據是UTF-8編碼的(這包括你的數據庫,如果適用)。
  2. 您的服務器正在發送utf-8標頭。
  3. 您的HTML有utf-8元標記。

數字1和2是最常見的問題。 (特別是2號 - 如果你的服務器發送指定不同編碼的標題,瀏覽器將嘗試使用該編碼,即使meta標籤顯示「utf-8」。)

+1

很好的答案。我將添加到列表#4:確保表被設置爲UTF-8。我已經多次看到DB被設置爲UTF-8,但表格被設置爲其他內容。 – 2012-03-04 05:29:30

0

嘗試 mysql_set_encoding('utf-8' ); 用於所有數據庫連接。