Вы никогда не сможете точно знать, что какой-либо фрагмент двоичных данных был предназначен для представления UTF-8.Однако вы всегда можете проверить, может ли интерпретироваться как UTF-8.Простейшим способом было бы просто попытаться преобразовать его (скажем, в UTF-32) и посмотреть, нет ли ошибок.Если все, что вам нужно, это проверка, то вы можете сделать то же самое, не записывая вывод.(Вам нужно написать это самостоятельно, но это легко.)
Обратите внимание, что по соображениям безопасности крайне важно полностью прервать преобразование при первой ошибке, а не пытаться каким-либо образом «восстановить».