Removendo caracteres de controle de uma string UTF-8 no PHP

Portanto, estou removendo os caracteres de controle (tab, cr, lf, \ v e todos os outros caracteres invisíveis) no lado do cliente (após a entrada), mas como o cliente não pode ser confiável, também preciso removê-los no servidor.

então de acordo com este linkhttp://www.utf8-chartable.de/

os caracteres de controle são de x00 a 1F e de 7F a 9F. Assim, minha função de remoção de caracteres de controle de cliente (javascript) é:

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

e minha função de remoção de caracteres de controle php (server) é:

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

Agora, isso parece criar problemas com caracteres utf8 internacionais, como ς (xCF x82), apenas no PHP (porque o x82 está dentro do segundo grupo de sequências), o equivalente a javascript não cria problemas.

Agora, minha pergunta é: devo remover os caracteres de controle de 7F para 9F? Para meu entendimento, as seqüências de 127 a 159 (7F a 9F) obviamente podem fazer parte de uma string UTF-8 válida?

Além disso, talvez eu nem devesse filtrar os caracteres de controle de 00 a 31, porque alguns desses caracteres podem aparecer em caracteres estranhos (japonês? chinês?), mas utf-8 válidos?

questionAnswers(1)

yourAnswerToTheQuestion