PHP多字节替代UTF8

时间:2012-08-24 14:42:59

标签: php utf-8 multibyte-functions

我一直在寻找UTF8安全的字符串操作函数替代品。我发现了许多不同的意见和建议。我想问一下以下函数是否会导致UTF-8出现问题,如果有,我应该使用什么代替。我知道PHP手册中的mb_前缀函数列表,但我没有使用所有函数。

功能包括:implode,explode,str_replace,preg_match,preg_replace

谢谢

2 个答案:

答案 0 :(得分:5)

explode只查找相同的字节序列并在该点分隔字符串。由于UTF-8安全地向后兼容ASCII,因此没有任何问题,它可以正常工作。 implode只是将字符串组合在一起,由于UTF-8的属性,它也可以正常工作。 str_replace的工作原理相同。只要您使用/u modifierpreg_函数就可以正常工作。

答案 1 :(得分:1)

如果您需要使用UTF8字符进行安全操作,可以这样做:

mb_internal_encoding('UTF-8');
preg_replace( '`...`u', '...', $string ) // with the u (unicode) modifier