ennor Geschrieben 20. Juni 2011 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.
Goos Geschrieben 20. Juni 2011 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
ennor Geschrieben 21. Juni 2011 Autor 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
Goos Geschrieben 22. Juni 2011 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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden