удаление управляющих символов в строке utf-8

Поэтому я удаляю контрольные символы (вкладки, cr, lf, \ v и все другие невидимые символы) на стороне клиента (после ввода), но поскольку клиенту нельзя доверять, я также должен удалить их на сервере.

поэтому согласно этой ссылке http://www.utf8-chartable.de/

управляющие символы от x00 до 1F и от 7F до 9F. таким образом, моя функция удаления символов управления клиентом (javascript):

return s.replace(/[\x00-\x1F\x7F-\x9F]/g, ""); 

и моя функция удаления char php (server):

 $s = preg_replace('/[\x00-\x1F\x7F-\x9F]/', '', $s); 

Теперь это создает проблемы с международными символами utf8, такими как ς (xCF x82) только в PHP (поскольку x82 находится во второй группе последовательностей), эквивалент javascript не создает никаких проблем.

Теперь мой вопрос: следует ли удалить управляющие символы с 7F до 9F? Насколько я понимаю, последовательности из 127 до 159 (от 7F до 9F), очевидно, могут быть частью допустимой строки UTF-8?

также, может быть, мне даже не нужно отфильтровать контрольные символы от 00 до 31, потому что некоторые из этих символов могут появляться в некоторых странных (японский? китайский?), но действительных символов utf-8?

Solutions Collecting From Web of "удаление управляющих символов в строке utf-8"