Dai vostri commenti sembra che stai chiamando
hex2a('000000000000000000000000000000314d464737');
e avvisando il risultato.
Il tuo problema è che stai costruendo una stringa che inizia con 0x00. Questo codice viene generalmente utilizzato come terminatore di stringa per una stringa con terminazione null.
Rimuovere il 00
alla partenza:
hex2a('314d464737');
Si potrebbe risolvere il tuo funzione come questa per saltare quelli null "carattere":
function hex2a(hex) {
var str = '';
for (var i = 0; i < hex.length; i += 2) {
var v = parseInt(hex.substr(i, 2), 16);
if (v) str += String.fromCharCode(v);
}
return str;
}
Si noti che la stringa completa di 0x00 ancora potrebbe essere utilizzato in altri contesti ma Chrome non può avvisarlo. Non dovresti usare questo tipo di stringhe.
fonte
2012-12-04 07:41:34
Sembra funzionare su Chromium per me: http://jsfiddle.net/fDzqu/ –
Potrebbe chiarire "non funziona"? Cosa succede quando lo provi e in che cosa differisce da ciò che ti aspetti? Ricevi un messaggio di errore? Funziona bene in Chrome quando lo provo. http://jsfiddle.net/Guffa/uT2q5/ – Guffa
Si prega di dare un esempio di input e output. Cosa c'è in chrome vs firefix? – loganfsmyth