PHP iconv函数-删除字符串中第一个unicode字符之后的所有字符串

PHP iconv函数-删除字符串中第一个unicode字符之后的所有字符串,php,unicode,utf-8,iconv,Php,Unicode,Utf 8,Iconv,我用这段代码来替换字符串中的Unicode字符,但实际上这是删除字符串中第一个Unicode符号之后的所有字符。是否有其他功能可以帮助我执行此操作?我建议使用preg\u replace这样做: $string = @iconv("UTF-8", "UTF-8", $string); 或者更好: preg_replace('/[\x00-\x1F\x7F]/u', '', $string); 如果上述情况不适用于您的案例,则可能: preg_replace('/[\x00-\x1F\x7F\

我用这段代码来替换字符串中的Unicode字符,但实际上这是删除字符串中第一个Unicode符号之后的所有字符。是否有其他功能可以帮助我执行此操作?

我建议使用
preg\u replace
这样做:

$string = @iconv("UTF-8", "UTF-8", $string);
或者更好:

preg_replace('/[\x00-\x1F\x7F]/u', '', $string);
如果上述情况不适用于您的案例,则可能:

preg_replace('/[\x00-\x1F\x7F\xA0]/u', '', $string);
还可以选择过滤您需要的内容,而不是删除您不需要的内容。像这样的方法应该会奏效:

preg_replace( '/[^[:cntrl:]]/', '',$string);

是否要删除unicode字符?是…………您的代码将UTF-8字符串转换为其他UTF-8字符串。。。也许您需要更改第二个参数。看看PHP文档:@Inazo我在某处读到,这是一个已知的bug。如果有更好的方法,我会尽量避免使用这个函数。@doki哦,这取决于你有什么输入。这就是为什么我给出了多个解决方案,因为我不知道哪一个适合你。很高兴我能帮助你:)
filter_var($string, FILTER_UNSAFE_RAW, FILTER_FLAG_STRIP_LOW|FILTER_FLAG_STRIP_HIGH);