Странная проблема с 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)))); } 

Дисплей будет

 好不好你好不好  

Есть идеи?

Related of "Странная проблема с preg_replace и китайским персонажем"

Добавьте модификатор 'u' к вашим шаблонам (например, '/(\\\r\\\n\\\r\\\n)+/u' вместо '/(\\\r\\\n\\\r\\\n)+/' ) и убедитесь, что объект находится в UTF-8.

Только таким образом ваш ввод будет интерпретироваться как UTF-8 вместо однобайтовой кодировки.

Используйте \p{Z} вместо \s в вашем регулярном выражении

Символы Unicode занимают несколько байтов, тогда как символы ASCII занимают один. Вероятно, вам нужно сделать многобайтовый поиск mb_ereg_replace http://us2.php.net/manual/en/function.mb-ereg-replace.php