Javascript - Encoder la Chaîne hexa

j'ai ma fonction pour convertir la chaîne en hexadécimal:

function encode(str){
    str = encodeURIComponent(str).split('%').join('');
    return str.toLowerCase();
}

exemple:

守护村子

alert(encode('守护村子'));

la sortie serait:

e5ae88e68aa4e69d91e5ad90

Il fonctionne sur les caractères Chinois. Mais quand je le fais avec les lettres anglaises

alert(encode('Hello World'));

il sorties:

hello20world

J'ai essayé pour la conversion de la chaîne en hexadécimal:

function String2Hex(tmp) {
    var str = '';
    for(var i = 0; i < tmp.length; i++) {
        str += tmp[i].charCodeAt(0).toString(16);
    }
    return str;
}

ensuite essayé sur les caractères Chinois ci-dessus, mais il les sorties de l'UTF-8 HEX:

5b8862a467515b50

pas la norme ANSI Hex:

e5ae88e68aa4e69d91e5ad90

J'ai aussi cherché la conversion UFT8 à la norme ANSI mais pas de chance.
Quelqu'un pourrait-il m'aider? Merci!

découvrez ce répondre. Je pense qu'il pourrait être ce que vous cherchez.
Merci mais ce n'est pas la réponse, elle est similaire à la String2Hex fonction ci-dessus, qui donne l'utf8 code hexadécimal, pas ansi code hexadécimal. Mais merci quand même.
Essayez de convertir le texte en latin1 à l'aide de tmp = unescape(encodeURIComponent(str))
Double Possible de Javascript: chaîne Unicode hexadécimal

OriginalL'auteur John Pangilinan | 2016-04-15