【问题标题】:Replace � character in string替换字符串中的�字符
【发布时间】:2020-03-08 08:46:14
【问题描述】:

我通过 PHP 抓取了一个网站。在页面源中有这样的东西:

11.8�20.5�26.8"

我如何通过 PHP 识别这个字符并将其替换为其他符号?

我试过了,但效果不好,PHP不允许我复制这个字符:

$description = trim(str_replace("�","",$description));

【问题讨论】:

  • 你的 PHP 文件是 UTF-8 吗?
  • 你是什么意思?我从互联网上抓取这个源代码?
  • 你的 PHP 脚本。在您的 IDE/编辑器中打开它。它是什么字符编码?如果不是 UTF-8,而远程资源是 UTF-8,你会遇到这样的编码问题。 UTF-8 所有的东西!
  • 反之,如果你是 UTF-8,那么远程的人就错了,在这种情况下使用php.net/manual/en/function.mb-convert-encoding.php
  • UTF-8.......

标签: php unicode


【解决方案1】:

您报告的 × 字符是 dec 215 或十六进制 D7

试试这个:

$replacement = 'x'; // I mean letter 'x' (or use any other character)

$description = preg_replace('/[\xD7]/', $replacement, $description);

【讨论】:

  • 你希望他对每个字符都这样做,而不是他所在的编码?
  • 不,只有这一个,一般你可以扩展或者使用一些代码来替换unicode字符的范围
  • 因为我只有这个角色有问题,所以这个解决方案帮助了我,我不知道这是不是最好的答案,但是谢谢
  • 它会起作用,直到出现下一个狡猾的字母。是的,更好的解决方案是将编码转换为UTF8 php.net/manual/en/function.mb-convert-encoding.php
  • 是的,但这只是破解错误输入,而不是一开始就传递有效数据。正确答案始终是有效输入。
猜你喜欢
  • 2011-12-17
  • 2011-07-02
  • 2012-04-26
  • 1970-01-01
  • 2013-01-04
相关资源
最近更新 更多