Verzweiflung mit Sonderzeichen auf Server?

Hallo liebe Community ...

Ich bin am Verzweifeln! Ich schreibe im Moment an einem Server-Client-Konstrukt, wo der Java Client eine POST-Request an einen online Server sendet, der die Anfrage dann per PHP und MySQL verarbeitet. In diesem Fall soll einfach nur vom Client eine Textnachricht per POST an ein PHP-Script gesendet werden, das wird dann in PHP per $_POST['Nachricht'] ausgelesen und dann in einer MySQL-Datenbank gespeichert. Und in einer anderen Anfrage wird die Nachricht aus der Tabelle wieder ausgelesen und zurückgeschickt.

Nun arbeite ich aber mit Umlauten und vlt später auch mit anderen Sonderzeichen. Ich habe es zuvor auf meinem localhost versucht und das hat wunderbar geklappt. Wenn ich das allerdings versuche das auf meinem online Server wieder auszulesen (über eine andere POST-Request) kommt sowas bei raus:

In der Datenbankansicht per PHPMyAdmin sieht das ebenfalls so aus. Wie kann ich die Umlaute auf meinem Client richtig anzeigen lassen? Ich bin verwirrt und brauche Hilfe ;-;

Zur Info:

  • Die Texte codiere ich vor dem Senden per POST mit URLEncoder.encode(text, "UTF-8")
  • im Serververzeichnis habe ich über eine ".user.ini" das default_charset auf UTF-8 gesetzt (Mastervalue ist iso-8859-1)
  • (auf meinem localhost ist beides auf UTF-8 gesetzt)
  • die Kollation meiner Server-Datenbanken habe ich glaube irgendwann mal von iso-8859-1auf utf8_general_ci umgestellt
  • als Header im php-Script habe ich noch: header('Content-Type: text/html; charset=utf-8');

Ich komme da echt durcheinander :( kann mir jemand helfen?

Vielen Dank im Voraus

Bild zum Beitrag
Server, Computer, Technik, Java, Sonderzeichen, Datenbank, PHP, Technologie, UTF-8
Suchfunktion mit PHP Version 7.1.12 und MySQL?

Hallo,

ich habe mir letztens auf YouTube ein Video angeschaut, wie man mit Hilfe von PHP eine MySQL-Datenbank durchsucht. Ich habe es selber ausprobiert, doch musste leider feststellen, dass der Code nicht für meine PHP-Version (7.1.12) geeignet ist.

Also habe ich versucht ihn umzuschreiben. Das hat aber leider nicht geklappt.

<html>
  <head>
    <title>Suche</title>
  </head>
  <body>
    <form action="" method="get">
      <input type="text" name="suchfeld"/>
      <input type="submit" name="suche_enter" value="suchen"/>
    </form>
    <hr /><br />
    <?php
      if (isset($_GET['suche_enter'])) {
        $host = "localhost";
        $user = "root";
        $pass = "";
        $db = "test_db";
        $conn = new mysqli($host, $user, $pass, $db);

        if ($conn->connect_errno) {
          die("Verbindung fehlgeschlagen: " . $mysqli->connect_error);
        }

        $suchbegriff = trim(htmlentities(stripslashes(mysqli_real_escape_string($_GET['suchfeld']))));
        $sql = "SELECT headline, text FROM article WHERE
          headline LIKE '%$suchbegriff%' OR
          image LIKE '%$suchbegriff%' OR
          overtext LIKE '%$suchbegriff%' OR
          text LIKE '%$suchbegriff%' OR
          gender1 LIKE '%$suchbegriff%' OR
          gender2 LIKE '%$suchbegriff%'
          ORDER BY headline, gender1, overtext, text, gender2, image";
        $query = mysqli_query($sql);

        echo "<ul>";

        WHILE ($row = mysqli_fetch_assoc($query)) {
          $headline = $row['headline'];
          $overtext = $row['overtext'];
          $text = $row['text'];

          echo "<li>$headline <br /><br />$overtext<br /><br /><hr /><br /></li>";
        }

        echo "</ul>";
      }
    ?>
  </body>
</html>

Wie müsste der Code richtig aussehen?

Computer, HTML, programmieren, Datenbank, MySQL, PHP, PHP 5

Meistgelesene Beiträge zum Thema Datenbank