Java – die besten Beiträge

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

Java / BlueJ: Wo ist hier der Fehler?

Ich habe folgendes Programm geschrieben:

public class Formel {
  private int c;

  private int p;

  private int k;

  private boolean ergebnis;

  public Formel() {
    double formel = Math.pow(c, 3) - 3 * Math.pow(c, 2) * (p -k) + 3 * c * (Math.pow(p, 2) - Math.pow(k, 2)) - (Math.pow(p, 3) + Math.pow(k, 3));
    p = 2;
    k = 1;
    boolean ergbnis = false;

    for (formel = 0;;) {
      do {
        Math.pow(-4 * Math.pow(k, 3) + 9 * Math.pow(k, 2) * p + Math.pow(-16 * Math.pow(k, 6) + 24 * Math.pow(k, 5) * p + 9 * Math.pow(k, 4) * Math.pow(p, 2) - 22 * Math.pow(k, 3) * Math.pow(p, 3) + 9 * Math.pow(k, 2) * Math.pow(p, 4), 0.5) - 3* k * Math.pow(p, 2), 1 / 3); // divided by Math.pow(2, 1/3);
        p++;
        k++;
      }
      while (ergebnis = false);
  
      if (ergebnis = true) {
        System.out.println(c);
        System.out.println(p);
        System.out.println(k);
        break;
      }
    }
  }
}

Hier:

3 * k* Math.pow(p, 2), 1 / 3); // divided by Math.pow(2, 1 / 3)

will ich, dass die linke Seite (also den ganzen linken Term beginnend mit Math.pow(-4Math.pow(k,3)...) durch die rechte geteilt wird. Also soll da stehen:

Math.pow(-4 * Math.pow(k, 3) + 9 * Math.pow(k, 2) * p + Math.pow(-16 * Math.pow(k, 6) + 24 * Math.pow(k, 5) * p + 9 * Math.pow(k, 4) * Math.pow(p, 2) - 22 * Math.pow(k, 3) * Math.pow(p, 3) + 9 * Math.pow(k, 2) * Math.pow(p, 4), 0.5) - 3 * k * Math.pow(p, 2), 1 / 3) / Math.pow(2, 1 / 3);

Jedoch ist das Problem dass er das geteilt Zeichen nicht als Statement sieht? Was ist hier falsch bzw. wie kann ich das korrigieren?

Java, BlueJ, Informatiker

Meistgelesene Beiträge zum Thema Java