Umlaute in die Datenbank schreiben (PHP Eingabe)
-
hmmz|off schrieb:
utf8_encode() & utf8_decode()
Bloß nicht!
Grundsätzlich die Seitenausgabe auf Unicode stellen.
header('Content-Type: text/html; charset=utf-8');
-
árn[y]ék schrieb:
hmmz|off schrieb:
utf8_encode() & utf8_decode()
Bloß nicht!
Man entwickelt Funktionen natürlich nur damit Personen wie du nachher sagen können das man sie > Bloß nicht! < verwenden soll
header('Content-Type: text/html; charset=utf-8'); print "Ä";
Ausführen und Zeichencodierung im Browser manuell umstellen (z.B. Türkisch (Windows-1254)) -> gucken was passiert...
print utf8_decode("Ä");
Ausführen und Zeichencodierung im Browser manuell umstellen (z.B. Türkisch (Windows-1254)) -> gucken was passiert...
So hat alles seine Vor-und Nachteile :p
-
vergiss nicht, dass auch die Datenbank auf UTF-8 sein muss
-
123 schrieb:
Man entwickelt Funktionen natürlich nur damit Personen wie du nachher sagen können das man sie > Bloß nicht! < verwenden soll
Nur weil es etwas gibt soll man es noch lange nicht verwenden.
Ich kenne keinen Grund warum man diese beiden Funktionen je verwenden will - es gibt aber sicher den einen oder anderen extremen Fall wo es sinnvoll sein könnte. (Wobei dann iconv wahrscheinlich die sinnvollere Alternative ist)Hier ist die Lösung wie mehrfach schon gesagt: utf8 verwenden.
Dann braucht man nicht hin und her kodieren.
-
hmm, mir fällt spontan ein recht guter Grund ein. Nämlich dann, wenn man aufgrund von Rechtebeschränkungen keine Möglichkeit hat die Codierung der Datenbank zu beeinflussen. Man sollte vielleicht nicht immer so groß denken
-
123 schrieb:
hmm, mir fällt spontan ein recht guter Grund ein. Nämlich dann, wenn man aufgrund von Rechtebeschränkungen keine Möglichkeit hat die Codierung der Datenbank zu beeinflussen. Man sollte vielleicht nicht immer so groß denken
Damit tust du symptome bekämpfen und keine Probleme lösen.
-
Shade Of Mine schrieb:
Nur weil es etwas gibt soll man es noch lange nicht verwenden.
Ich kenne keinen Grund warum man diese beiden Funktionen je verwenden will - es gibt aber sicher den einen oder anderen extremen Fall wo es sinnvoll sein könnte. (Wobei dann iconv wahrscheinlich die sinnvollere Alternative ist)*meld*
zugegeben, iconv wär mir bisweilen auch lieber, aber wir nutzen utf8_[de|en]code recht oft.
Wir sind intern komplett auf utf8, aber bekommen immer wieder Dateien zum importieren bzw. müssen welche exportiere, wo iso-8851-1 vorausgesetzt wird. Nicht immer lustig, aber leider notwendig (und natürlich emails)
-
Shade Of Mine schrieb:
123 schrieb:
hmm, mir fällt spontan ein recht guter Grund ein. Nämlich dann, wenn man aufgrund von Rechtebeschränkungen keine Möglichkeit hat die Codierung der Datenbank zu beeinflussen. Man sollte vielleicht nicht immer so groß denken
Damit tust du symptome bekämpfen und keine Probleme lösen.
Ich kenn deine Vorstellungen nicht, aber nicht jeder sitzt vorm root-Server und hat die Möglichkeit die Berechtigung der Datenbanken selbst zu manipulieren .
Mal ein paar Beispiele:
- Synchronisierung von Daten aus Drittanbieter-Datenbanken
- "Ich bau mir schnell 'ne HP mit DB" - Anbieter wie funpicEin anderes Beispiel für die Nutzung solcher Funktionen:
- XML-Daten von Drittanbietern oder an Drittanbieter
- siehe zwutz: EMailsLG
-
Du argumentierst um den heißen Brei, weil der Einsatz dieser Funktionen hier nunmal überhaupt keinen Sinn macht. Geschweige denn vom Overhead. Zudem braucht kein Schwein Root-Rechte oder gar einen eigenen Server, um die Enkodierung in MySQL festzulegen. Was ist das denn für ein Käse?
Hier kommt jemand mit nem alltäglichen Problem auf FAQ-Niveau, du bringst eine schlechte Notlösung für Randsituationen, die mit der Frage überhaupt nicht einhergehen, und versuchst dann, diesen Schmarn zurechtzubiegen, bis er passt.
Ist irgendwie ... merkste selber, nech?
-
ÄÖÜ schrieb:
Also die Datenbank speichert die Umlaute korrekt ab nur das Einlesen im Formular also das PHP wandelt es in diese Zeichen um. Gibt es einen Befehl in PHP mit dem ich das ändern kann?
SRY war etwas undeutlich von mirSorry .. hab nur die Frage beantwortet! Wird nicht mehr passieren ...
Und sowas will hier Moderator sein wirklich niveaulos