none
Tschechischen Text Konvertieren MSSQL RRS feed

  • Frage

  • Hallo,

    bekomme aus einer Spalte diese Zeilen/Text zurück:

    K?i¶íkova 
    Okrouhlá 2
    Harantova 
    U Vy¶ových

    Das ist ein Tschechischer Text, wie bekomme ich diesen in das richtige Tschechische Format? Habe diesen Select unten angewendet - bekomme trotzdem das gleich zurück

    SELECT cast(Straße COLLATE Czech_CI_AS as varchar(10)) from

    Danke für die Hilfe

    Gruß Danijel

    Montag, 30. Mai 2016 13:58

Alle Antworten

  • Hi Danijel,
    wenn die Spalte vom Typ nvarchar ist, wird der Text auch in Unicode geliefert. Was sein kann, ist die Darstellung, wenn das genutzte Objekte (TextBox, Editor o.ä.) keinen UniCode richtig darstellen kann.

    --
    Viele Grüsse
    Peter Fleischer (MVP, Partner)
    Meine Homepage mit Tipps und Tricks
    Kommas richtig setzen!
    Schüler sagen, Lehrer haben es gut.
    Schüler, sagen Lehrer, haben es gut

    Montag, 30. Mai 2016 14:05
  • Hallo Danijel,

    wie ist die Spalte deklariert? varchar oder nvarchar? Sind die Zeichen richtig eingetragen oder stehen die schon falsch in der Tabelle?

    Schau dir mal die Inhalte im SQL Server Management Studio an. Wenn die dort auch so wie beschrieben zu sehen sind, würde ich sagen, dass Du nicht mehr ins richtige Format zurückkommst.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Montag, 30. Mai 2016 14:14
    Moderator
  • Hallo Danijel,

    der tschechische Zeichensatz enthält Zeichen, die im westlichen Zeichensatz (Latin1_General_CI_AS) nicht enthalten sind, der üblicherweise in Deutschland installiert wird. Deswegen bringt ein CAST auf varchar(N) - impliziert database_default - nichts, da dabei Datenbank-Sortierung verwendet wird - siehe COLLATE.

    Auch solltest Du prüfen ob nicht jemand (irrtümlich) versucht UTF-8 zu speichern, das würde ebenfalls Probleme geben. Sind die Zeichen erst einmal falsch in einer VARCHAR Spalte gelandet, so wirst Du um eine Bereinigung nicht herum kommen.

    Wenn Du in einer Datenbank neben westlichen auch tschechische Zeichen (oder andere wie türkisch, asiatische) speichern willst, solltest Du generell auf Unicode (N[VAR]CHAR) umstellen. Die Anwendungen, die darauf zugreifen, müssen ebenfalls mit Unicode umgehen können.

    Gruß Elmar

    Montag, 30. Mai 2016 15:53
  • Hallo,

    ich greife auf eine DB2 - Datenbank via MSSQL- Verbindungsserver.

    Dazu habe ich mir eine Sicht erstellt  - bekomme varchar zurück aus der Spalte.

    Die Zeichen sind richtig eingetragen, werden in Tschechien eingegeben (im Programm auf Tsch. wird es richtig dargestellt) 

    Beim versuch eine Auswertung zu machen, bekomme ich eben diese komische Zeichen aus der DB.

    Gruß 

    Danijel


    Dienstag, 31. Mai 2016 05:17
  • Hallo Danijel,

    sie Spalte sollte Unicode zurückgeben, denn nur so ist ein Mischmasch vermeidbar.

    DB2 verwendet abweichende Konzepte, wo der SQL Server auf UTF-16 setzt, wird dort UTF-8 verwendet und auch die Anwendung von Zeichensätzen un dSortierungen ist eine andere. Beim Transferieren kann schon mal das eine oder andere schief gehen.

    Siehe dazu: Understanding DB2 Universal Database character conversion.

    Gruß Elmar
    Dienstag, 31. Mai 2016 09:08