Detectar si una cadena tenía doble codificación en UTF-8

Necesito procesar una gran lista de cadenas cortas (principalmente en ruso, pero es posible cualquier otro idioma, incluida la basura aleatoria de un gato que camina sobre el teclado).

Algunas de estas cadenas se codificarán en UTF-8 dos veces.

Necesito detectar de manera confiable si una cadena dada tiene doble codificación y arreglarla. Debo hacer esto sin usar ninguna biblioteca externa, simplemente inspeccionando los bytes. La detección debe ser lo más rápida posible.

La pregunta es: ¿cómo detectar que una cadena determinada se codificó en UTF-8 dos veces?

Actualizar

Las cadenas originales están en UTF-8. Aquí está el código AS3 que realiza la segunda codificación (desafortunadamente no tengo control sobre el código del cliente, así que no puedo solucionarlo):

private function toUTF8(s : String) : String {
       var byteArray : ByteArray = new ByteArray();
       byteArray.writeUTFBytes(s);
       byteArray.position = 0;

       var res : String = "";

       while(byteArray.bytesAvailable){
           res += String.fromCharCode(byteArray.readUnsignedByte());
       }

       return res;
}

myString = toUTF8(("" + myString).toLowerCase().substr(0, 64));

NotatoLowerCase() llamada. ¿Quizás esto pueda ayudar?

Respuestas a la pregunta(2)

Su respuesta a la pregunta