VB.Net – HTML Sonderzeichen in Umlaute umwandeln

Im Computerbereich gibt es verschiedene Zeichensätze und Zeichencodierungen. Der Zeichensatz für HTML-Dokumente ist generell Unicode. Um ein konkretes Dokument zu erstellen müssen Sie dafür eine Zeichencodierung verwenden.

Eine Zeichenkodierung beschreibt die konkrete Zuordnung eines Codepoints zu einem Byte oder einer Bytesequenz. UTF-8 und UTF-16 sind beispielsweise Kodierungen für den Zeichensatz Unicode.

Ein Zeichensatz (character set, kurz charset) ist die Gesamtheit der zur Verfügung stehenden Zeichen. Ein Zeichensatz ist ein eher abstraktes Gebilde, das nur die Zeichen selbst und eine Reihenfolge beschreibt, nicht jedoch eine konkrete Abbildung auf Byte-Werte. Das ist Aufgabe der Zeichenkodierung.

Quellenhinweis: SelfHtml

Umlaute und Sonderzeichen

  • ä -> ä
  • Ä -> Ä
  • ö -> ö
  • Ö -> Ö
  • ü -> ü
  • Ü -> Ü
  • ß -> ß
  • € -> €
  • & -> &
  • < -> &lt;
  • > -> &gt;
  • „ -> &quot;
  • © -> &copy;
  • • -> &bull;
  • ™ -> &trade;
  • ® -> &reg;
  • § -> &sect;
  • | -> |

Es kann zum Beispiel sein das Sie einen CSV Export von einer Android App weiter verarbeiten müssen. Je nach verwendeten Zeichensatz kann das dann so <Ä> für <ä> zum Beispiel aussehen. Wenn man diese Daten in eine Datenbank importieren möchte, kann man sich mit folgender Funktion, den HTML Code in lesbare Umlaute konvertieren lassen.

    '============================================
    ' VB.NET Beispiel in Visual Basic .Net
    ' © wilfried.bitz@bridgesolution.de
    '============================================
 
    Public Function Html_Umlaute_Uebersetzung(strString As String)
 
    
    If CONV_String_Vergleich(strString, "Ä") Then
        strString = ConvBeliebigenString(strString, "Ä", "ä")
    End If
    
    If CONV_String_Vergleich(strString, "ä") Then
        strString = ConvBeliebigenString(strString, "ä", "ä")
    End If
 
    
    If CONV_String_Vergleich(strString, "Ö") Then
        strString = ConvBeliebigenString(strString, "Ö", "ö")
    End If
    
    If CONV_String_Vergleich(strString, "ö") Then
        strString = ConvBeliebigenString(strString, "ö", "ö")
    End If
 
    
    If CONV_String_Vergleich(strString, "ß") Then
        strString = ConvBeliebigenString(strString, "ß", "ß")
    End If
 
    
    If CONV_String_Vergleich(strString, "Ü") Then
        strString = ConvBeliebigenString(strString, "Ãœ", "ü")
    End If
    
    If CONV_String_Vergleich(strString, "ü") Then
        strString = ConvBeliebigenString(strString, "ü", "ü")
    End If
 
    Html_Umlaute_Uebersetzung = strString
 
   End Function
 
    '============================================
    ' VB.NET Beispiel in Visual Basic .Net
    ' © wilfried.bitz@bridgesolution.de
    '============================================
   Public Function CONV_String_Vergleich( _
        ByVal strString As String, _
        ByVal strSuchString As String) As Boolean
        CONV_String_Vergleich = False
 
        On Error Resume Next
 
        If strSuchString = "" Then
            If strString &lt;&gt; "" Then
                Exit Function
            End If
        End If
 
        Dim nI As Integer
        For nI = 1 To Len(strString)
 
            'Den String nach dem Suchstring durchsuchen
            If UCase(Mid(strString, nI, Len(strSuchString))) = UCase(strSuchString) Then
                CONV_String_Vergleich = True
                Exit For
            End If
 
        Next nI
 
 
        Exit Function
 
   End Function
 
 
    '============================================
    ' VB.NET Beispiel in Visual Basic .Net
    ' © wilfried.bitz@bridgesolution.de
    '============================================
  Public Function ConvBeliebigenString( _
        ByRef strString As String, _
        ByRef cSuchstring As String, _
        ByRef cNeuzeichen As String) As String
 
        Dim nI As Integer
        Dim cRueckgabe As String
 
         ConvBeliebigenString = strString
 
        cRueckgabe = ""
        For nI = 1 To Len(strString)
            Select Case Mid(strString, nI, Len(cSuchstring))
                Case cSuchstring
                    cRueckgabe = cRueckgabe &amp; cNeuzeichen
                    If Len(cSuchstring) &gt; Len(cNeuzeichen) Then
                        'Suchstring max 2 Zeichen und Neuzeichen = 1 Zeichen
                        nI = nI + 1
                    End If
                Case Else
                    cRueckgabe = cRueckgabe &amp; Mid(strString, nI, 1)
            End Select
        Next nI
 
         ConvBeliebigenString = cRueckgabe
 
        Exit Function
 
    End Function

Mit den VB.Net Funktionen CONV_String_Vergleich() und ConvBeliebigenString() kann man aus einem mehrstelligen Zeichenstring einen einstelligen Zeichenstring machen. Eine Funktionalität die man sicher auch in anderen Bereichen gebrauchen kann.

Spendierst du mir eine Tasse Kaffee? Ich würd mich riesig freuen. DANKE !! 🙂


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.