2010-11-10 7 views
2

J'ai ce problème werid. Après un preg_replace, un personnage chinois est devenu un personnage funky. c'est le script.Bizarre problème avec preg_replace et caractère chinois

$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)))); 
} 

L'écran serait

好不好你 
好不好� 

Toutes les idées?

Répondre

3

Ajouter le modificateur 'u' à vos motifs (par exemple '/(\\\r\\\n\\\r\\\n)+/u' au lieu de '/(\\\r\\\n\\\r\\\n)+/') et assurez-vous que le sujet est en UTF-8 . Ce n'est que de cette façon que votre entrée sera interprétée comme UTF-8 au lieu d'un codage à un octet.

+0

impressionnant fonctionne comme un charme –

+0

Toujours relatif et valide, que vous à la fin le résout! – SlickRemix