2011-09-14 63 views
0

苹果 蝙蝠 猫 鼠 垫 脂肪如何摆脱这些非法字符?

我想摆脱这些非法字符。你能提出一些解决方案吗?我使用PHP作为编程语言。

当我从MS页面的某个东西粘贴到HTML页面的textarea时出现这些。

+0

[您需要知道的关于使用文本的编码和字符集](http://kunststube.net/encoding/)[Deceze](http://stackoverflow.com/users/476/deceze) 。 – alex

+0

它不是我想要的。一些超出范围的东西。 –

回答

0

PHP有String replace。我假设你正在处理提交的表单数据,并且想要清理textarea的值以删除这些字符。

$retrievedAreaText = $_POST["textAreaId"]; 
$illegalChars = array("",); //others 
$retrievedAreaText = str_replace($illegalChars,"",$retrievedAreaText); 
//further processing 
+0

我知道它,并且这个解决方案在任何情况下都无法解决,原因有二。 1)这不是唯一的非法字符。它可以是任何用户将它从word文件粘贴到textarea 2)文本编辑器(Notepad ++)不显示此字符。 –

+0

(1)所以添加其他非法字符到阵列。 (2)那么?如果您知道要尝试黑名单的字符,请将它们放入数组中。如果您的文本编辑器无法显示它们,请查找它们的ASCII/Unicode值。如果您想采用白名单方法,则可以定义可接受字符的白名单并替换不在该名单中的所有值。 –

3

如果你只是要提取的ASCII,那么你可以试试这个:

$string = preg_replace('/[^(\x20-\x7F)]*/','', $string);

+0

我已经发现它在谷歌和stackoverflow,但没有解决。因此发布的问题在这里 –

+0

它测试它时,它的工作原理。你是否只使用一些unicode字符? – whg

+0

它可能适合你,但不适合我。 ( )我的任务是,用户将HTML文件中的任何内容粘贴到textarea文件中,我只是想要非法字符被过滤,当你尝试:'$ string =“时,你只需要过滤掉 –

0

试用一下这个:

$string = htmlentities($string, ENT_COMPAT, "UTF-8"); 

它转换特殊字符utf标准或任何你想要的标准。 确实,特殊的字符主要是麻烦。

希望这可以帮助你。