Zum Inhalt springen

[MSSQL-PHP] Umlaute richtig in die Datenbank schreiben


Serear

Empfohlene Beiträge

Hallo zusammen,

ich habe ein kleines Problem.

Und zwar schreibt PHP die Umlaute die in Eingabemasken eingegeben wurden sind, nicht korrekt in die Datenbank.

Habe mich jetzt schon ein wenig Schlau gemacht und viel rumprobiert.

HTML-Charset = UTF-8

Wenn ich das Charset im HTML-Tag weg nehme, schreibt er die richtigen Umlaute in die Datenbank, stellt dafür natürlich aber nur Fehler am Bildschirm da.

D.h. ich bräuchte irgendwie eine Konvertierung beim inserten, von UTF-8 auf UCS-2 ist das mein ich, von MSSQL.

Wäre echt klasse, wenn einer von euch ne Idee hat.

Gruß

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich meine, ohne mich jetzt darauf fest zu nageln, dass PHP intern alles ISO-Latin-1 handelt, d.h. wenn Du UTF8 Daten in Deine PHP Datei bekommst, musst Du diese via utf8_decode decodieren und dann eben passend für Deine Datenbank codieren, bevor Du sie schreibst.Wenn Du Daten aus der Datenbank holst, musst Du sie eben für PHP wieder nach ISO Latin codieren und wenn die Ausgabe UTF8 sein soll, eben mit utf8_encode passend codieren.

Evtl hilft Dir PHP: mb_internal_encoding - Manual weiter, aber Du müsstest das halt generell überall konsequent einsetzen. Alternativ würde ich die Datenbank auf UTF8 umstellen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Und zwar schreibt PHP die Umlaute die in Eingabemasken eingegeben wurden sind, nicht korrekt in die Datenbank.

Zeig mal den Betreffenden Quellcode.

Sonst ist es das Problem nicht nachvollziehbar.

Vermutung:

Vielleicht behandelst du die Formulardaten falsch, bevor du sie in die Datenbank speicherst.

Tipp:

Die Formulardaten, immer mit mysql_real_escape_string behandeln, bevor sie in die Datenbank gespeichert werden.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Die Verbindung zur DB und die Standardzeichencodierung spielt bei MSSQL-DBs da nicht so die große Rolle.

Neben dem im Header angegebenen Zeichensatz kommt es ebenfalls auf die Codierung der PHP-Dateien an. Diese müssen ebenfalls als UTF-8 Datei auf dem Server liegen.

Aus dem phpforum.de: UTF-8 - PHP Forum: phpforum.de

  • Dateien (PHP-Dateien, CSS-Dateien, JS-Dateien, usw. usf.) müssen in UTF-8 gespeichert werden.
  • Daten in der Datenbank (Daten in Tabellenzellen)
  • Verbindungen zu Datenbanken (Der Weg, auf dem die Daten von PHP zur Datenbank geschickt werden)
  • Anzeige im Client (Dem Browser muss mitgeteilt werden, dass die Webseite in UTF-8 vorliegt)

Link zu diesem Kommentar
Auf anderen Seiten teilen

user@host:~> echo $LANG

de_DE.UTF-8

user@host:~> php -m | grep iconv

iconv

user@host:~> php

<?php
$input = "Dies ist ein Satz mit Umlauten: ÄÖÜäöüß";
$ucs2 = iconv("UTF-8","UCS-2",$input);
echo "UTF-8 => $input \t UCS-2 => $ucs2\n";
?>[/PHP]

UTF-8 => Dies ist ein Satz mit Umlauten: ÄÖÜäöüß UCS-2 => Dies ist ein Satz mit Umlauten: �������

Könnte helfen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Kann man aber nur machen, wenn man auf die Konsole kommt, was bei einem Webhoster wohl nicht möglich ist.

Richtig. 95% der Leute schauen idR dann auf ihr phpinfo(), da findet man auch alles. ;)

Andererseits ist die Wahrscheinlichkeit für einen Webhoster gering, da findet sich dann doch eher MySQL. Bei MSSQL gehe ich daher von einem internen/DMZ Setup aus - also mit guter Chance auf eine Shell.

Ich hatte oben auch nur das, was mir in den Kopf kam, auf der Shell getestet und in den Thread gepostet. Der TE kann sich dann ja seine Gedanken dazu machen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...