Veröffentlicht 20. Juni 201114 j 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.
20. Juni 201114 j 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
21. Juni 201114 j 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
22. Juni 201114 j 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
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.