fgetcsv 后数组第一行中的奇怪字符

CR4*_*R47 5 php csv illegal-characters fgetcsv

我有一个 CSV 文件,在这种情况下,第一个“单元格”只是一个整数 9。下一行是第一个“单元格”的 10,依此类推。当我做$array = fgetcsv($file);第一行的第一个单元格时,值前面有这些奇怪的字符:??

它搞乱了我的数据库导入,因为这个单元格应该只包含一个整数。它只发生在第一行的第一个单元格上。

关于为什么会发生这种情况以及我可以做些什么来避免这种情况的任何想法?

hpa*_*nia 5

正如其他人所建议的,奇怪的字符是Byte Order Mark (BOM)。为了删除它,您可以使用以下代码段:

if (mb_detect_encoding($value) === 'UTF-8') {
    // delete possible BOM
    // not all UTF-8 files start with these three bytes
    $value = preg_replace('/\x{EF}\x{BB}\x{BF}/', '', $value);
}
Run Code Online (Sandbox Code Playgroud)


eli*_*ide 1

听起来你有一个 unicode 文件并且正在获取字节顺序标记。