ennor Geschrieben 20. Juni 2011 Teilen Geschrieben 20. Juni 2011 Hallo, vielleicht kann mir hier jemand helfen.... Ich habe ein PHP-Programm von ISO-8859-1 auf UTF-8 umgestellt, also Zeichensätze der Dateien und im HTML-Header geändert. Nun hab ich ein Problem mit den Daten, welche bisher mit dem Programm in die DB eingetragen wurden. Dort werden nun nämlich die 'Rechtecke mit Fragezeichen' (�) anstatt der gewünschten Sonderzeichen ausgegeben. Gibt es eine Einstellung für die MS-SQL-Datenbanken, in welcher Kodierung die Daten rein geschrieben und ausgelesen werden? Und wie kann ich die vorhandenen Daten konvertieren? Würde mich freuen, wenn mir wer n Tipp geben kann. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Goos Geschrieben 20. Juni 2011 Teilen Geschrieben 20. Juni 2011 Hi ennor, dein SQL Server wandelt implizit in den Datentyp, den du beim Anlegen der entsprechenden Spalte deiner Tabelle angegeben hast. Bei varchar(x) entscheidet die eingestellte Collation ueber die verwendete Codepage. Hast du ein nvarchar(x) verwendet, so enthaelt die Spalte ne UCS-2 Codierung. Entweder wandelst du nun beim Schreiben/Lesen aus/in die Datenbank nach UCS-2 und verwendest nvarchar(x) (natuerlich nur insofern dir der UCS-2 Zeichenvorrat ausreicht), oder du verwendest den Datentyp varbinary(x). Bei varbinary(x) kannst du problemlos deine UTF-8 codierten Strings speichern. Eventueller Nachteil ist, dass du mit einer solchen Spalte dann datenbankintern laengst nicht mehr alles machen kannst, was du vielleicht sonst vielleicht auf einer Charakter Spalte tun wuerdest. Goos Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ennor Geschrieben 21. Juni 2011 Autor Teilen Geschrieben 21. Juni 2011 Danke für die Antwort Goos, aber mein Problem sind ja die gespeicherten Daten. Die werden mit falschen (oder besser: anderen) Umlauten ausgelesen bzw. angezeigt... Gibt es da eine Möglichkeit, die zu konvertieren? Zur Zeit befürchte ich, das ich mit einem Skript alle Datensätze laden, mit iconv (o.ä.) umwandeln und wieder speichern müsste. Das würde mit nem SQL-Skript besser gehen (TRANSLATE ?) Grüße Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Goos Geschrieben 22. Juni 2011 Teilen Geschrieben 22. Juni 2011 Hi ennor, Eine Umwandlung nach UTF-8 gibts auf jden Fall nicht. Ansonsten haengts davon ab, unter welchem Datentyp du momentan gespeichert hast und welchen Datentyp du in Zukunft verwenden willst. Goos Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.