tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
5
ZUGRIFFE
1259
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    mcpd mcpd ist offline Mitglied
    Registriert seit
    Feb 2009
    Beiträge
    16
    Hallo Leute,

    ich habe eine ASP.NET Web-Applikation geschrieben, die Daten aus einer MS-SQL Server 2005 Datenbank in einem GridView-Control darstellt. Alles soweit o.k. Doch nun möchte ich einen Datensatz aus dem GridView in TextBox-Controls anzeigen lassen und bemerke, dass alle Datenätze mit einem Umlaut nicht angezeigt werden. Bei einem DEBUG-Vorgang werden diese Umlaute durch irgendwelche Zeichen dargestellt. Woran kann das liegen? Ich habe was gelesen über UTF-8 Codierung. Wo muss ich diese Codierung anwenden?

    Danke für Eure schnelle Hilfe

    mfg
     

  2. #2
    mcpd mcpd ist offline Mitglied
    Registriert seit
    Feb 2009
    Beiträge
    16
    Hallo Leute,

    das Problem konnte ich nun endlich selber lösen. Ich muss den Wert
    aus der Zelle einer GridView mit der Methode "Server.HtmlDecode()"
    auslesen und den Wert als Parameter übergeben. Dann klappt alles.

    Gruss
    mcpd
     

  3. #3
    CPoly CPoly ist offline Mitglied Weizenbier
    tutorials.de Premium-User
    Registriert seit
    Sep 2009
    Beiträge
    2.445
    Meiner Meinung nach ist das aber keine schöne Lösung. Du scheinst die Daten schon vorm Schreiben in die Datenbank mit HtmlEncode() o.Ä. zu behandeln. Dadurch werden alle Sonderzeichen durch eine andere Darstellung ersetzt (z.B. ü=&#252 ; ). In deinem GridView werden sie wieder korrekt dargestellt, da der Browser &#252 ; als ü rendert. In der TextBox werden die Zeichen so dargestellt, wie sie sind.
    Je nachdem um was für Daten es sich handelt, ist das natürlich nicht schlimm. Aber wenn du beispielsweise einen Foreneintrag kodiert in der Datenbank ablegst, kannst du eine Textsuche nach Umlauten vergessen, es sei denn du kodierst den Suchbegriff entsprechend.
    Da aber die Datenbank UTF-8 fähig ist und die Browser es auch sind, ist es schöner die Daten im Original zu speichern. Kodieren sollte man nur solche zeichen, welche zu Fehler führen können oder Angriffsfläche für XSS bieten (&,<,>,',").

    Ich hoffe der Beitrag hilft dir auch beim Verständnis weiter.
    Geändert von CPoly (09.12.09 um 19:50 Uhr)
     

  4. #4
    mcpd mcpd ist offline Mitglied
    Registriert seit
    Feb 2009
    Beiträge
    16
    Hallo CPoly,

    das stimmt nicht ganz. Denn das Schreiben meiner Daten in die Datenbank
    erfolgt ohne "Server.HtmlEncode()". Das war das Kuriose an dieser Situation.

    mcpd
     

  5. #5
    CPoly CPoly ist offline Mitglied Weizenbier
    tutorials.de Premium-User
    Registriert seit
    Sep 2009
    Beiträge
    2.445
    Achso, dann hab ich das nicht richtig gelesen. Ich dachte du schreibst Daten aus der DB in eine TexBox und in ein GridView. Aber du tust deine TextBox mit Daten aus dem GridView-control füllen. Microsoft nutzt ungefragt HtmlEncode() im GridView. Du kannst das Feldweise mit HtmlEncode="False" abstellen.
     

  6. #6
    mcpd mcpd ist offline Mitglied
    Registriert seit
    Feb 2009
    Beiträge
    16
    Hallo CPoly,

    danke für Deine Info. Die Eigenschaft werde ich mir für das nächste Projekt
    gut merken.


    mcpd
     

Ähnliche Themen

  1. Umlaut Problem
    Von crashx im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 30.12.08, 19:51
  2. Antworten: 14
    Letzter Beitrag: 06.06.08, 08:40
  3. Problem mit Umlaut / UTF-Decode
    Von Kopfballstar im Forum Javascript & Ajax
    Antworten: 6
    Letzter Beitrag: 27.05.08, 14:22
  4. Umlaut Problem mit Gifbuilder
    Von Gunah im Forum Content Management Systeme (CMS)
    Antworten: 3
    Letzter Beitrag: 05.09.07, 09:08
  5. Umlaut Problem bei Suchfunktion
    Von MsvP@habdichliebhasi im Forum PHP
    Antworten: 5
    Letzter Beitrag: 11.03.07, 12:30