2014-08-29 64 views
3

我正在導入csv文件並將其存儲在我的數據庫中。PHP導入CSV文件變得奇怪字符

問題是,當我嘗試使用var_dump時出現一些奇怪的字符。

下面是這些人物的形象:

enter image description here

在CSV,它看起來並不像,它看起來像這樣13.05.2014 17

所以,很顯然這裏有些不對勁。

所以我的問題是如何刪除所有這些怪異的字符?

您的幫助將不勝感激!

謝謝! :)

+0

看起來像一個編碼問題 – Petah 2014-08-29 08:58:59

+0

注意你的字符編碼,例如使用UTF-8。你的源文件是如何編碼的?你的瀏覽器如何解碼字符? – 2014-08-29 08:59:51

+0

我也想到了一個,因爲我從Norweigan的客戶那裏得到了這個csv,但我不確定這是否相關。 – PinoyStackOverflower 2014-08-29 09:00:09

回答

1

您必須先檢查您的字符集,然後將其轉換。您可以使用 mb_detect_encoding($ out); 如果你不知道字符集。然而,在一般情況下,它將始終是其中的一個:UTF-8,ASCII,ISO-8859-1,ISO-8859-15 在大多數情況下,結果應該是UTF-8。您應該根據您的需要調整此PHP代碼。 PHP模塊mb_string是必需的。否則,您必須用另一個轉換函數替換它。

$out = 'some strange character set @@@@@@@@@'; 
if (
    function_exists('mb_detect_encoding') && 
    is_callable('mb_detect_encoding') 
) { 
    $charset = mb_detect_encoding($out, 'UTF-8,ASCII,ISO-8859-1,ISO-8859-15', TRUE); 
} 

if (
    $charset != '' && 
    $charset != 'UTF-8' 
) { 
    $out = 
     mb_convert_encoding(
      $out, 
      'UTF-8', 
      $charset 
     ); 
} 

var_dump($out);