相关疑难解决方法(0)

从字符串中删除非utf8字符

我在从字符串中删除非utf8字符时遇到问题,这些字符无法正常显示.字符是这样的0x97 0x61 0x6C 0x6F(十六进制表示)

删除它们的最佳方法是什么?正则表达式还是其他什么?

php regex

102
推荐指数
13
解决办法
16万
查看次数

用问号替换无效的UTF-8字符,mbstring.substitute_character似乎被忽略了

我想用引号替换无效的UTF-8字符(PHP 5.3.5).

到目前为止,我有这个解决方案,但删除了无效字符,而不是被'?'取代.

function replace_invalid_utf8($str)
{
  return mb_convert_encoding($str, 'UTF-8', 'UTF-8');
}

echo mb_substitute_character()."\n";

echo replace_invalid_utf8('éééaaaàààeeé')."\n";
echo replace_invalid_utf8('eeeaaaaaaeeé')."\n";
Run Code Online (Sandbox Code Playgroud)

应输出:

63 // ASCII code for '?' character
???aaa???eé // or ??aa??eé
eeeaaaaaaeeé
Run Code Online (Sandbox Code Playgroud)

但目前产出:

63
aaaee // removed invalid characters
eeeaaaaaaeeé
Run Code Online (Sandbox Code Playgroud)

有什么建议?

你会用另一种方式(preg_replace()例如使用?)

谢谢.

php utf-8 character-encoding mbstring

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

php ×2

character-encoding ×1

mbstring ×1

regex ×1

utf-8 ×1