You are not logged in.

  • Login
Bitte besucht unser neues Forum unter https://forum.nitrado.net | Please visit our new Forum at https://forum.nitrado.net

Dear visitor, welcome to Nitrado.net Prepaid Gameserver Community-Support - Archiv. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

ketrwu14

Moderator

  • "ketrwu14" is male
  • "ketrwu14" started this thread

Posts: 1,430

Thanks: 2

  • Send private message

1

Monday, March 3rd 2014, 5:10pm

+[MySQL] Einige Probleme mit Umlauten

Hallo und danke schon mal.

Ich speichere Nachrichten in einer MySQL Tabelle, soweit so gut, außer sie enthalten Umlaute. Dann steht in der Tabelle: öäüß ( = öäü )
Gut, dann hab ich mir gedacht speicher ich einfach die Unicodes statt die Umlaute. Also hab ich alle Umlaute hiernach Kodiert (zB aus ä wird ä ) und es dann erneut probiert. Ergebnis: H ( gespeichert hab ich: Häuser )

Die Tabelle steht auf utf8_general_ci und die Ausgabeseite auf:

Source code

1
<meta http-equiv="Content-Type" content="text/html"; charset="utf-8" />


Ich hab natürlich nicht aufgegeben und hab alle Umlaute in andere Zeichen übersetzt zb aus Ä wird %A% und aus ä wird %a%. Beim Auslesen hab ich sie dann wieder zurück übersetzt. Damit wurden die Probleme in der Datenbank behoben... Aber als Ausgabe bekomm ich: Ã�&Ouml;Ã� ( = ÄÖÜ )

Was mach ich falsch, bzw wie macht mans richtig?
Danke.

strubel

User / Kunde

Posts: 863

  • Send private message

2

Monday, March 3rd 2014, 5:18pm

Versuch mal \u00E4 für ä, \u00F6 für ö und \u00FC für ü auszugeben.
Alle Angaben ohne Gewähr!

ketrwu14

Moderator

  • "ketrwu14" is male
  • "ketrwu14" started this thread

Posts: 1,430

Thanks: 2

  • Send private message

3

Monday, March 3rd 2014, 5:26pm

Hmm, ich hab herausgefunden woran es liegt...
Zum ausgeben der Nachricht benutz ich:

Source code

1
echo htmlentities("$player: $message");

ohne htmlentities() gehts, aber htmlentities() ist wichtig xD
Gibts ne alternative?
Ach und \u00F6 steht sowohl mit htmlentities() als auch ohne als \u00F6 da.

HappyLooser

User / Kunde

Posts: 405

  • Send private message

4

Monday, March 3rd 2014, 6:40pm

Die umlaute sind eigentlich egal, solange die Codierung stimmt.
Deine Webseite sollte idealerweisse die gleiche Codierung haben.
Bei der Übergabe die codierung mit angegeben und beim holen auch ?!?

ketrwu14

Moderator

  • "ketrwu14" is male
  • "ketrwu14" started this thread

Posts: 1,430

Thanks: 2

  • Send private message

5

Monday, March 3rd 2014, 7:04pm

Ja wie gesagt die Umlaute kann ich auch als Umlaute in die Datenbank schreiben und mit echo wieder ausgeben, aber ich benutze htmlentities() um da XSS zu verhindern, leider hat das auch den neben Effekt das Umlaute verloren gehen egal wie sie geschrieben sind. ( Also egal ob ä, &auml; oder \u00E4 )
Ich bräuchte also irgendeine Möglichkeit XSS zu verhindern und meine Umlaute zu behalten.

HappyLooser

User / Kunde

Posts: 405

  • Send private message

6

Monday, March 3rd 2014, 9:06pm

Wie gesagt, hat damit nichts zutun. Du musst das Encoding einfach konsequent bei behalten.
Aber eigentlich reicht das auch wenn du es bei connection ..... entsprechend angibst. Das musst dann natürlich für alles machen
....SET NAMES 'utf-8' etc.
probier einfach mal

Bitte besucht unser neues Forum unter https://forum.nitrado.net| Please visit our new Forum at https://forum.nitrado.net

Similar threads