2010-11-10 47 views
2

我有這個問題。在preg_replace之後,一些漢字變成了時髦的字符。這是劇本。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\\\n\\\r\\\n)+/','\r\n\r\n', preg_replace('/^(\\\r\\\n)+|(\\\r\\\n)+$/', '', preg_replace('/\s+/', ' ', preg_replace('/^\s+|\s+$/', '', $a)))); 
} 

顯示將

好不好你 
好不好� 

任何想法?

回答

3

'u'改性劑添加到您的模式(例如'/(\\\r\\\n\\\r\\\n)+/u'而不是'/(\\\r\\\n\\\r\\\n)+/'),確保主題是UTF-8 。

只有這樣,您的輸入纔會被解釋爲UTF-8而不是單字節編碼。

+0

真棒作品像一個魅力 – 2010-11-11 06:27:41

+0

仍然相對和有效,你到最後解決它! – SlickRemix 2018-01-09 17:50:55