Tengo hojas que contienen texto como défi (défi) o Österreich ( défi ).
Puedo decodificar el primero con este script, por otro lado, no puedo hacer el segundo (quiero decir que el código toma 3 bytes)
¡Gracias por cualquier ayuda!
function decode(txt){ var texte = [] for (i=0;i<txt.length;i++){ var n = txt.substring(i,i+1).charCodeAt() if (n>127){ if ((n & 32) > 0){ //texte.push(decode_utf8(txt.substring(i,i+3))) ?? i+=2 } else{ texte.push(decode_utf8(txt.substring(i,i+2))) i++ } } else{ texte.push(txt.substring(i,i+1)) } } return (texte.join('')) } function decode_utf8(s) { return decodeURIComponent(escape(s)); }Aquí hay una solución ... basada en github
function utf8decode(utftext) { var string = ""; var i = 0; var c = c1 = c2 = 0; while ( i < utftext.length ) { c = utftext.charCodeAt(i); if (c < 128) { string += String.fromCharCode(c); i++; } else if((c > 191) && (c < 224)) { c2 = utftext.charCodeAt(i+1); string += String.fromCharCode(((c & 31) << 6) | (c2 & 63)); i += 2; } else { c2 = utftext.charCodeAt(i+1); c3 = utftext.charCodeAt(i+2); string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)); i += 3; } } return string; }