Detectar se uma sequência foi codificada duas vezes em UTF-8

Preciso processar uma grande lista de strings curtas (principalmente em russo, mas qualquer outro idioma é possível, incluindo lixo aleatório de um gato andando no teclado).

Algumas dessas seqüências serão codificadas em UTF-8 duas vezes.

Preciso detectar com segurança se uma determinada string é codificada duas vezes e corrigi-la. Eu deveria fazer isso sem usar nenhuma biblioteca externa, apenas inspecionando os bytes. A detecção deve ser o mais rápida possível.

A questão é: como detectar que uma determinada string foi codificada em UTF-8 duas vezes?

Atualizar:

As strings originais estão em UTF-8. Aqui está o código AS3 que faz a segunda codificação (infelizmente não tenho controle sobre o código do cliente, então não posso corrigir isso):

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() ligar. Talvez isso possa ajudar?

questionAnswers(2)

yourAnswerToTheQuestion