【发布时间】:2012-12-13 04:25:18
【问题描述】:
我正在从来自数据库的 XML 表中读取数据。在原始输出中,我遇到了这个字符“�”,它是 UTF-8 字符串,意思是“�”。在搜索“�”或“�”时,使用 str_replace 进行简单的搜索和删除并不能解决问题。有没有其他方法可以从字符串中删除这个字符?
更新:
作为参考,这是为我清理字符串的函数。
function db_utf8_convert($str)
{
$convmap = array(0x80, 0x10ffff, 0, 0xffffff);
return preg_replace('/\x{EF}\x{BF}\x{BD}/u', '', mb_encode_numericentity($str, $convmap, "UTF-8"));
}
【问题讨论】:
-
第一个结果是一个 SO 问题,回答:google.com/search?q=� 不确定这是否有帮助。
-
在问这个之前用 php 等效语句尝试过,没有用。
-
这是 UTF-8 BOM。 � 表示无效字符。如果你使用了解析器,那么你就不会遇到这个问题。
标签: php string utf-8 byte-order-mark