我正在接受来自提要的字符串以显示在屏幕上,该字符串可能包含也可能不包含我想过滤掉的一些垃圾。我根本不想过滤普通符号。
我要删除的值如下所示:�</p>
我只想删除这个。相关技术是PHP。
建议表示赞赏。
我正在接受来自提要的字符串以显示在屏幕上,该字符串可能包含也可能不包含我想过滤掉的一些垃圾。我根本不想过滤普通符号。
我要删除的值如下所示:�</p>
我只想删除这个。相关技术是PHP。
建议表示赞赏。
这是一个编码问题;你不应该试图清理那些虚假的字符,但要明白为什么你会收到乱码。
尝试以 Unicode 格式获取您的数据,或者与您的提要提供商达成协议,让您使用相同的编码。
谢谢你们的回应。不幸的是,提交的人有以下问题:
错误的原因很明显:
ereg_replace("[^A-Za-z0-9]", "", $string);
这:
s/[\u00FF-\uFFFF]//
当我转换为 preg 时,它也使用了已弃用的 ereg 形式的正则表达式也不起作用,因为范围对于正则表达式来说太大而无法处理。此外,该范围内还有一些洞可以让垃圾渗入。
这个建议:
这是一个编码问题;你不应该试图清理那些虚假的字符,但要明白为什么你会收到乱码。
虽然有效,但不好,因为我无法控制我收到的数据的编码方式。它来自外部来源。有时那里有垃圾,有时没有。
所以,我想出的解决方案比较脏,但是在没有更强大的东西的情况下,我只是接受所有标准的字母、数字和符号,并丢弃其余的。
这似乎暂时有效。解决方法如下:
$fixT = str_replace("£", "£", $string);
$fixT = str_replace("€", "€", $fixT);
$fixT = preg_replace("/[^a-zA-Z0-9\s\.\/:!\[\]\*\+\-\|\<\>@#\$%\^&\(\)_=\';,'\?\\\{\}`~\"]/", "", $fixT);
如果有人有更好的想法,我仍然很想听听他们的意见。干杯。
如果您无法解决来自提要的数据的问题并且需要过滤信息,那么这可能会有所帮助:
PHP5 filter_input 非常适合过滤输入字符串,并允许相当多的 rlexability
filter_input(input_type, variable, filter, options)
如果需要相同的过滤,您还可以在一行中过滤所有表单数据:)
这里有一些很好的例子和更多关于它的信息:
http://www.w3schools.com/PHP/func_filter_input.asp
PHP 站点在此处提供有关选项的更多信息:验证过滤器
您正在寻找字体可以显示的字形范围之外的字符。您可以找到字体可以显示的最大 unicode 值,然后创建一个正则表达式,将高于该值的任何内容替换为空字符串。一个例子是
s/[\u00FF-\uFFFF]//
这将删除字符 255 以上的任何内容。
这对你来说很难做到,因为你对过滤什么和保留什么没有一个明确的定义。通常,显示为空方块的字符是您使用的字体没有字形的任何字符,因此“显示为:�”的定义非常不准确。
最好确定哪些字符是有效的(无论如何这始终是一个好方法,可以进行任何类型的数据清理)并丢弃不属于其中的所有字符。PHP过滤器功能是执行此操作的一种可能性,具体取决于您所需的复杂程度和稳健性。
试试这个:
如果您找到使字符正确显示的设置,那么您需要使用该编码对您的网站进行编码,或者将其从该编码转换为您在网站上使用的任何编码。
你好朋友,
try this Regular Expression to remove unicode char from the string :
/*\\u([0-9]|[a-fA-F])([0-9]|[a-fA-F])([0-9]|[a-fA-F])([0-9]|[a-fA-F])/
谢谢, Chintu(prajapati.chintu.001@gmail.com)