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

Wie bekomme ich eine Kollisionsbehandlung hin?

Hi Leute :) Ich bin dabei ein kleines Jump&Run in Java zu programmieren und bin nun schon seit geraumer Zeit an der Kollisionsauflösung hängengeblieben. Die Erkennung von Kollisionen habe ich bereits gelöst. Ich habe nun schon das halbe Internet abgesucht, bin aber nicht schlauer geworden. Könnt ihr mir helfen? Ich habe bisher eine HALBWEGS funktionierende Kollisionserkennung hinbekommen.

Gegeben sind mir: -Position des Spielers(px, py), -Größe des Spielers(playerSize), -Pos. der Hitbox(bx, by), -Seitenlänge der Hitbox(boxSize), -Bewegungsrichtung des Spielers(movex, movey), -Zielposition des Spielers ohne Einbezug der Kollision(destx, desty), -Geschwindigkeit des Spielers(vel) --- alles vom Typ "int"

Das Problem: so wie ich das gelöst habe ist die Auflösung fehlerhaft. Wenn ich geradewegs auf die Hitbox zukomme mit einer Geschwindigkeit von z.B. 5 Pixel pro Frame und ich rage bei der Kollision so in die Hitbox hinein, dass der x-Anteil größer ist als der y-Anteil, dann wird es nach y aufgelöst.

Ich wollte in jedem Schleifendurchlauf die Kollision mit allen überlappenden Tiles so auflösen: Mein bisheriger Code:

if(intersect(...)){ //wenn die Kollision mit der aktuellen Box feststeht
int tilex = bx
int tiley = by
                    
int yover = desty + playerSize - by;        //positiv wenn überlappung
int yunder = by + boxSize - desty;      //positiv wenn überlappung
int xleft = xdest + playerSize - bx;        //positiv wenn überlappung
int xright = bx + boxSize- destx;       //positiv wenn überlappung
                    
boolean left = false, right = false, top = false, bottom = false;  

//Überragt der Spieler die obere, untere, linke oder Rechte Seite der Box 
                    
if(desty < by) top = true;
if(desty + playerSize > by + boxSize) bottom = true;
if(destx < bx) left = true;
if(destx + playerSize > bx + boxSize) right = true;
                    
if(top && !right && !left) desty = by - playerSize;
if(bottom && !right && !left) desty = by + boxSize;
if(left && !top && !bottom) destx = bx - playerSize;
if(right && !top && !bottom) destx = bx + boxSize;
                    
if(top && right){
    if(yover < xright) desty = by - playerSize;
    if(yover > xright) destx = tilex + boxSize;
}
if(top && left){
    if(yover < xleft) desty = by - playerSize;
    if(yover > xleft) destx = bx - playerSize;
}
if(bottom && left){
    if(yunder < xleft) desty = by + boxSize;
    if(yunder > xleft) destx = bx - playerSize;
}
if(bottom && right){
    if(yunder < xright) desty = by + boxSize;
    if(yunder > xright) destx = bx + boxSize;
}
}

Meine Frage ist nun: Wie bekomme ich so eine realistische und genaue Kollisionsbehandlung hin (mit destx und desty als Zielpositionen)? Es geht mir dabei nicht um einwandfreies Java, es zählt nur die Logik dahinter (von mir aus auch Pseudo-code).

Vielen Dank im Voraus :)

programmieren, Java, Spiele programmieren
Weitere Inhalte können nur Nutzer sehen, die bei uns eingeloggt sind.