如何从字符串中删除零宽度非连接器?

时间:2014-01-22 11:35:08

标签: php unicode character-encoding hex

我在PHP脚本中有一个字符串

$ str =“इनरिकॉर्ड्सपरहैसलमानकीनजर,धूम-3कोपछाड़ेगीजयहो?”;

并从下面的代码转换它:

$encoded_string = bin2hex(mb_convert_encoding($str, "UTF-16BE", 'UTF-8'));

移动设备的输出:

इनरिकॉ(这里Zero-Width Non-Joiner显示在输出中)र्ड्सपरहैसलमानकीनजर,धूम-3कोपछाड़ेगीजयहो?

但在最终输出中获得零宽度非连接器 * *。在获得最终输出后,如何在转换字符串时删除此实体?

4 个答案:

答案 0 :(得分:1)

找到解决方案,只需从String中替换零宽度非连接器实体即可。

 $str=str_replace('‌','',$str);

     **OR**  

 $str=str_replace('‌','',$str;

答案 1 :(得分:0)

$content = preg_replace( '/^[\pZ\pC]+|[\pZ\pC]+$/u', '', $content );

答案 2 :(得分:0)

$content = preg_replace( "/\x{200c}/u", '', $content );

答案 3 :(得分:0)

我也有同样的问题。我用正则表达式解决了

    import re
    mystring = "Hello W‌e"
    mystring  = re.sub(r"‎","",mystring)
    mystring  = re.sub(r"‌","",mystring)