用空格替换编码中不支持的字符

时间:2010-12-24 06:43:48

标签: php regex encoding

我在utf8字符集中获取某些文本,现在我想将其转换为ASCII,ASCII中不支持的字符应该用PHP中的空格替换。 我使用的当前代码是

  $input_encoding = mb_detect_encoding($toClean);
  mb_substitute_character("long");
  $encoded = mb_convert_encoding($toClean, "ASCII", "auto");

现在它在输出中显示了像“testU + 2013ng”这样的字符,我希望将此U + 2013替换为空格。我尝试使用下面的规则表达式

$encoded = preg_replace("~U\+[\d\w]{4}~", " ", $encoded);

现在它在输出中显示类似“Road'+ CB9 + CA4 + CAEU +”的文本。如何使用preg或其他东西删除所有不受支持的字符。

1 个答案:

答案 0 :(得分:1)

我没有看到正则表达式有什么特别的错误,但你可以简化为:

U\+\d{4}