PHP从字符串中删除垃圾

Aam*_*ood 5 php string utf-8

我遇到了一个问题,我正在使用一个非常基本的RTE来获取用户输入,并在使用RTE提供的函数发布时从字符串中修剪垃圾.我正在使用 http://premiumsoftware.net/cleditor

用户提交数据后,我用PHP解析它并删除不需要的内容.大多数用户都是Linux/Mac用户,他们通常会复制电子邮件/ word文档中的内容并将其粘贴到RTE中,从而导致大量垃圾.

我们还需要允许使用任何语言的所有UTF8字符.

说完这一切,请查看此图片

在此输入图像描述

正如您所看到的,在颜色注释中没有可见的特殊字符,如果我从MYSQL复制它并将其粘贴到任何地方,就不会有垃圾.但是如果我将值转换为HEX你可以看到,那里有一个奇怪的字符.用黄色突出显示.

有没有办法过滤这类问题.它导致我的PDF生成脚本停止工作

dec*_*eze 8

这不是"垃圾",它是以UTF-8编码的行分隔符U + 2028.如果你用ASCII/Latin-1解释它,它看起来就像垃圾一样,当用错误的字符集解释时,一切看起来像垃圾.没有什么可以删除.如果您决定要删除某些多余的字符,请随意执行此操作.但它们是原始内容的一部分,而且它们本身并没有"错误",所以在这里没有一般建议.

如果您的PDF生成器窒息,请找出原因.也许它通常不能正确处理Unicode,在这种情况下,如果你想用它支持Unicode,你需要修复它.如果它确实有特定的字符(它会很奇怪),那么你需要弄清楚这些字符究竟是什么并剥离它们.