Javascript fügt � hinzu

Grunge

Erfahrenes Mitglied
Hallo Leute,

ich bastle da grad an was. Ich will in einer Funktion ne $_SESSION übergeben. Das Funktioniert aber nicht, weil er immer die Ausgabe mit mehreren � erzeugt.

Gebe ich den String durch PHP ganz normal aus, wird es vollkommen richtig angezeigt. Habe versucht per replace die Zeichen zu löschen, aber das brachte auch keinen Erfolg. Weiß nicht woher die Zeichen kommen.

Code:
<button class="btn btn-primary pull-right" onClick="postit('<?php echo $_SESSION['id']; ?>');">Post it!</button>

//JS

<script>
function postit(id){
    alert(id.replace("�"," "));
}


AUSGABE:
27������������������������������

</script>
Ich will nur die 27 haben...

DANKE im Voraus
 

Sempervivum

Erfahrenes Mitglied
Wie wird denn der Wert dieser Variablen zugewiesen?
Mal mit var_dump ausgeben lassen, dann bekommt man u. U. erweiterte Infos.
 

Sempervivum

Erfahrenes Mitglied
Bei mir sieht die Ausgabe von var_dump etwas anders aus, wahrscheinlich hast Du eine andere PHP-Version. Aber die 32 ist offenbar die Länge und das gibt zu denken, weil der String ja nur zwei Zeichen lang ist. Offenbar sind da eine ganze Reihe von Steuerzeichen drin. Am besten, wie oben schon geschrieben, an der Quelle weiter suchen, dort wo die Variable gesetzt wird.
 

ComFreek

Mod | @comfreek
Moderator
Als Quickfix könntest du so etwas probieren wie: id.replace(/\s/gu, '') oder id.replace(/[^a-zA-Z0-9]/g, ''). Das Ersetzen von � hat vielleicht deswegen nicht funktioniert, weil � nicht das eigentliche Zeichen im String ist, sondern eine Ersatzdarstellung, die der Browser für dich eingefügt hat.