PHP不需要的字符删除解决方案


PHP unwanted characters removing solution

在描述中获取像" "这样的字符

要转换我用utf8_encode()尝试过的那些,它将此租赁者转换为另一种奇怪的模式。也尝试用regx和设置字符

有快速解决这个问题的方法吗?

谢谢。

很可能,您的字符串包含使用UTF-8编码的字符字符集。UTF-8有一些多字节字符。例如,欧元符号用UTF-8用三个字节E2, 82, AC表示。

但是你的软件用一个字节来解释字符串编码,如ISO-8859-1。这导致每个字节的3字节要被解释为单独字符的字符。E2,为例如,显示为â,而实际上只有3字节字符的第一个字节

utf8_encode()不是这个问题的解决方案。它需要ISO-8859-1认证编码字符串并返回UTF-8字符串。您已经有了UTF-8字符串。

你有几个选择。

第一,修复任何使用字符串的东西,使它期望字符串包含utf - 8。这样可以很好地保存字符在字符串中。例如,如果您将字符串作为一个网页,确保网页的字符编码是UTF-8。

第二,将字符串转换为实际使用的编码。例如,可以将字符串从UTF-8转换为ISO-8859-1与utf_decode()。缺点是ISO-8859-1不能表示和UTF-8一样多的不同字符,所以有些字符会在解码中丢失

试试我在处理utf8

时写的这个函数
function removeuni($content){
  preg_match_all("/['x{80}-'x{3000}]/u", $content, $matches);
  foreach($matches[0] as $match){
    $content = str_replace($match, mb_convert_encoding($match, "HTML-ENTITIES","UTF-8"), $content);
  }
  return $content;
}