PHP导入CSV文件出现奇怪字符

3
我正在导入CSV文件并将其存储在我的数据库中。问题是当我使用var_dump时,会得到一些奇怪的字符。
下面是这些字符的图像:
在CSV中,它看起来不像那样,它看起来像这样13.05.2014 17
所以显然有些东西出了问题。我的问题是如何删除所有这些奇怪的字符?非常感谢您的帮助!谢谢! :)

似乎是编码问题。 - Petah
注意字符编码,例如使用UTF-8。你的源文件是用什么编码的?你的浏览器如何解码字符? - Stefan Brendle
我也这么想,因为我是从挪威客户那里得到这个CSV文件的,不过我不确定是否有关联。 - PinoyStackOverflower
这可能是UTF-8编码问题。UTF8使用2个字节表示一个字符。Var dump结果显示每个字母都有一个额外的符号。因此,请将您的UTF8字符串转换为正确的字符串,或者在网站上更改您的编码为utf-8。 - Andrzej Reduta
1个回答

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);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接