2014-08-29 37 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);