【发布时间】:2018-08-04 13:36:08
【问题描述】:
我有一个要从中提取数据的 Excel 文件。部分文本包含如下所示的字符。我已经尝试过 preg_match 和 str_replace 但他们没有抓住它。我假设这是因为我需要该字符的代码,但我在任何地方都找不到。
†
实际线如下。请注意,缺少的关闭跨度是文件的方式。
<p><span style="font-size:11px">†Combined weight of 1/2 of total weight</p>
这些是我尝试过的命令。
$text = preg_replace("†",'',$text);
$text = str_replace("†",'',$text);
有人能解释一下如何删除那个字符吗?
【问题讨论】:
-
检查输入和 PHP 文件的编码。
-
php 文件为 UTF-8。我不确定如何检查输入,但我尝试了以下但结果是错误的。 echo mb_detect_encoding($str, 'UTF-8', true) ;
-
UTF-8 有两种可能的保存模式;一个带有 BOM(字节顺序标记)和一个不带。它可以有所作为。 @user3052443
-
基于一些猜测,我发现字符的HEX code is
2020,恰好是两次空格字符的十六进制代码。我建议将文件读取为 ASCII 编码。如果您在 Notepad++ 中打开文件,您应该能够在“编码”菜单中看到编码。 -
远射(还将删除其他符号,例如 € ):$cleaned = filter_var($yourString, FILTER_UNSAFE_RAW, FILTER_FLAG_STRIP_HIGH)