奇怪的问题与preg_replace和汉字 [英] Weird problem with preg_replace and chinese character
本文介绍了奇怪的问题与preg_replace和汉字的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有这个werid问题。在preg_replace之后,一些汉字变成了时髦的字符。这是脚本。
$ message = strip_tags(mysql_real_escape_string($ _ POST ['message']),'< img> < vid>');
echo $ message;
$ message = removewhitespace($ message);
echo $ message;
function removewhitespace($ a)
{
return preg_replace('/(\\\r\\\\\
\\\rr \\\ n)+ /','\r\\\
\r\\\
',preg_replace('/ ^(\\\r\\\\\
)+ | (\\\r\\\\\
)+ $ /','',preg_replace('/ \s + /','',preg_replace('/ ^ \s + | \s + $ /','',$ a))));
}
显示器为
好不好你
好不好
任何想法?
解决方案
将'u'
模式(例如'/(\\\r\\\\\\\\r\\\\\
而不是
)+ / u''/(\\\r\\\\\
)并确保主题是UTF-8。
\\\r\\\\\
)+ /'
只有这种方式,您的输入才会被解释为UTF-8,而不是单字节编码。 / p>
i have this werid problem. After a preg_replace, some chinese character became funky character. this is the script.
$message = strip_tags(mysql_real_escape_string($_POST['message']),'<img><vid>');
echo $message;
$message = removewhitespace($message);
echo $message;
function removewhitespace($a)
{
return preg_replace('/(\\\r\\\n\\\r\\\n)+/','\r\n\r\n', preg_replace('/^(\\\r\\\n)+|(\\\r\\\n)+$/', '', preg_replace('/\s+/', ' ', preg_replace('/^\s+|\s+$/', '', $a))));
}
The display would be
好不好你
好不好�
Any ideas?
解决方案
Add the 'u'
modifier to your patterns (e.g. '/(\\\r\\\n\\\r\\\n)+/u'
instead of '/(\\\r\\\n\\\r\\\n)+/'
) and make sure the subject is in UTF-8.
Only this way will your input be interpreted as UTF-8 instead of a single-byte encoding.
这篇关于奇怪的问题与preg_replace和汉字的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文