Al leer la documentación en MDN , dice
El método TextEncoder.prototype.encode() toma un USVString como entrada y devuelve un Uint8Array que contiene el texto proporcionado en parámetros codificados con el método específico para ese objeto TextEncoder.
Por otro lado, en el código siguiente, cada carácter de la cadena se transforma en su valor Unicode y se coloca en una matriz.
Uint8Array.from( Array.from(value) .map((letter) => letter.charCodeAt(0) ) ) A menudo, los dos métodos dan como resultado el mismo resultado, pero a veces con TextEncoder se genera un TypedArray más largo, especialmente cuando la cadena para codificar es una clave de cifrado decodificada.
Me pregunto ¿por qué es esto? ¿Tiene esto que ver con la transformación de una cadena JS primaria en una USVString? ¿O tal vez diferentes esquemas de codificación?