无法从字符串中删除 \ufeff

Ang*_*uis 5 php character-encoding

该应用程序基本上是这样工作的:

1) 用户上传 CSV 文件。

2) 该文件被 PHP 通过 POST 捕获。

3) 我fopen()fgetcsv().打开文件并用.

第一列总是有\ufeff字符。我知道这叫做 UTF-8 BOM,它是由 Microsoft Excel 生成的。但是,当我想删除它时,我不能。

我试过了: str_replace('\ufeff', '', $columns[0]);

Ter*_*Lin 12

$result = trim($result, "\xEF\xBB\xBF");
Run Code Online (Sandbox Code Playgroud)

这是解决这个问题的最简单的方法。


pr1*_*nc3 11

$columns[0] = preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $columns[0]);
Run Code Online (Sandbox Code Playgroud)

上面的代码可以帮助您删除文档中存在的隐藏字符,就像您提到的那样。

  • 请注意,这也会消除重音 (2认同)