escape() für alle Zeichen

Blandorin

Mitglied
Hallo,

ich möchte meinen Text in ASCII-Zahlenwerte umgewandelt haben. Die Funktion escape macht dies schon im Anfang, jedoch nur für Steuerungszeichen. Ich benötige dies aber für alle Zeichen, also auch für reine Schrift.

Hallo soll dann Beispielsweise als

%48%61%6C%6C%6F

dargestellt werden. Gibt es bei JavaScript ein Möglichkeit dies zu machen, oder gibt es da sogar eine Funktion die das macht?

Gruß
Blandorin
 
Hallo... ne Fertige Funktion ist mir da nicht bekannt.
ne eigene könnte so aussehen:
Code:
<script type="text/javascript">
<!--
function escape2(str)
{
out='';
for(s=0;s<str.length;++s)
    {
    out+='%'+str.charCodeAt(s).toString(16);
    }
return out;
}
alert(escape2('Hallo'));
//-->
</script>
...würde das tun.

Mit charCodeAt() bekommt man dabei den Zeichenwert, welchen man per toString(16) nur noch in nen Hexwert umwandeln muss.
 
Code:
function dechex(a_iNum)
{
    sHexInput = new String('0123456789ABCDEF');
    sRetVal   = new String();

    sRetVal  += sHexInput.charAt(Math.floor(a_iNum / 16));
    sRetVal  += sHexInput.charAt(a_iNum % 16);

    return sRetVal;
}

sChange    = new String('{abcedef');
sNewString = new String();

for (i=0; i<sChange.length; i++) {
    sNewString += '%' + dechex(sChange.charAt(i).charCodeAt(0));
}

window.alert(sChange + ' => ' + sNewString);
Sollte gehen (getestet)

Edit: zu spät...
 
Das sind ja mal zwei schnelle Antworten.
Ich habe die Version von fatalus getestet, und die funktioniert.

Danke euch beiden :)
 

Neue Beiträge

Zurück