$string = self::encodeUnicodeString($string);
Da fehlt mMn mindestens NULL
Und was ist mit 0xFF?
Und dann würde ich im Replace-Array die Schreibweise einheitlich als Unicode-Entity wählen.
Die übrigen Steuerzeichen zwischen 0x00 und 0x1F sollten mMn auch noch unterdrückt oder ersetzt werden.
Kurz und knapp: Schau dir die Implementierung von encodeUnicodeString an.
Mathias