是否需要mb_*来替换多字节字符串中的单字节字符?

dyn*_*mic 6 php utf-8

假设我有这样的UTF-8文字:

âàêíóôõ <br> âàêíóôõ <br> âàêíóôõ
Run Code Online (Sandbox Code Playgroud)

我想替换<br><br />.我需要使用mb_str_replace还是可以使用str_replace

Consindering < b r / >都是单字节char?

phi*_*hag 4

由于str_replaceUTF-8 是二进制安全的,并且 UTF-8 是双射编码str_replace,因此即使搜索字符串或替换包含多字节字符,只要所有三个参数都编码为 UTF-8,您就可以使用 。

mb_str_replace这就是为什么一开始就没有函数的原因。

如果您的编码不是双射的 - 即同一字符串有多种表示形式,例如<在 UTF-7 中,可以表示为'+ADw-''<',您应该将所有字符串转换为相同的(双射)编码,应用str_replace,然后转换将字符串转换为目标编码。