Javascript-forum
JavaScript PHP Charset Unterschiedlich verständnisfrage - Druckversion

+- Javascript-forum (https://javascript-forum.de)
+-- Forum: Entwicklung (https://javascript-forum.de/forumdisplay.php?fid=4)
+--- Forum: Javascript (https://javascript-forum.de/forumdisplay.php?fid=6)
+--- Thema: JavaScript PHP Charset Unterschiedlich verständnisfrage (/showthread.php?tid=298)



JavaScript PHP Charset Unterschiedlich verständnisfrage - beowulf123456 - 01.12.2021

Guten Tag,

bei einem Kunden Projekt ist mir eine Unstimmigkeit zwischen PHP und JavaScript aufgefallen. Leider kann ich mir diese nicht erklären.
Das Problem besteht anscheinend darin dass das charset zwischen JavaScript und PHP irgendwie unterschiedlich zu sein scheint.

Anhand dieses Problems habe ich hierzu ein kurzes Beispiel nachgebaut.

Code:
<!DOCTYPE html>
<html lang='de'>
    <head>       
        <meta charset='utf-8'>
        <script>

            console.log( encodeURIComponent('ÄÖÜß') );
            console.log( "" );
            console.log( btoa('ÄÖÜß') );

        </script>
    </head>
    <body>
        <?php

            echo rawurlencode('ÄÖÜß');
            echo "<br><br>";
            echo base64_encode('ÄÖÜß');

        ?>
    </body>
</html>

Speziell geht es um die Sonderzeichen ÄÖÜß. Diese Wandele ich von beiden Sprachen JavaScript als auch PHP um.

- In einen URL String (JavaScript encodeURIComponent, sowie dem PHP Equivalent rawurlencode)
- In einen Base64 String (JavaScript btoa, sowie dem PHP Equivalent base64_encode)

Dazu erhalte ich folgende Ausgabe in Google Chrome.

[Bild: problem.png]

Während der URL String in sowohl in JavaScript als auch in PHP Identisch ist. So ist es der Base64 String nicht und das Obwohl die Eingabe ÄÖÜß immer exakt die selbe ist.
Woran liegt das?
Und wie Löse ich das Problem?
Könnt ihr mir hierzu eine Hilfestellung geben?
Vielen Dank.


Mit freundlichen Grüßen

PS: Das oben genannte Beispiel ist nur ein Beispiel und soll den Fehler anschaulich Demonstrieren.