| |

VB.NET - Ein- und Umsteiger[VB.net] UTF String ("\u00f6") in Latin Char "ö" wandeln | |  | Autor: Seek1 | Datum: 30.07.21 10:00 |
| Hallo Leute,
Ich habe das Problem, dass wenn ich über eine RestAPI Daten auslese,
z.Bsp. den Namen "Sepp P\u00f6lzler" auslese.
Dieser Name wird komplett als String geliefert.
Der Name wird anschliesend nach "Latin konvertiert".
Hierfür verwende ich folgende "lookup" liste:
NewString = NewString.Replace("\u00e4", "ä")
NewString = NewString.Replace("\u00e8", "è")
NewString = NewString.Replace("\u00e9", "é")
NewString = NewString.Replace("\u00ed", "í")
NewString = NewString.Replace("\u00f1", "ñ")
NewString = NewString.Replace("\u00fc", "ü")
NewString = NewString.Replace("\u00f6", "ö")
NewString = NewString.Replace("\u003c", "<")
<pre><code> Danach ist der String wieder "Sepp Pölzler"
Habe mir schon mal das system.text.encoding angesehen und auch bei MS
folgenden Code gefunden: (Vielleicht braucht den mal jemand)
Public Function UnicodeToISO(ByVal unicodeString As String) As String
Dim ascii As Encoding = Encoding.GetEncoding("ISO-8859-1")
Dim unicode As Encoding = Encoding.UTF8
Dim unicodeBytes As Byte() = unicode.GetBytes(unicodeString)
Dim asciiBytes As Byte() = Encoding.Convert(unicode, ascii, unicodeBytes)
Dim asciiChars(ascii.GetCharCount(asciiBytes, 0, asciiBytes.Length) - 1) As Char
ascii.GetChars(asciiBytes, 0, asciiBytes.Length, asciiChars, 0)
Dim asciiString As New String(asciiChars)
Return asciiString
End Function Leider hilft der mir nicht weiter, weil er "\u00f6" in "\u00f6"
konvertiert.
Ich brauche aber etwas, das aus dem STRING "\u00f6" das CHAR "ö"
erstellt oder gleich den kompletten String nach Latin übersetzt
Die Daten werden anschliessend einem anderen Programm übergeben, dass ich nicht ändern kann :-/
Kann mir da wer weiter helfen? |  |
Re: [VB.net] UTF String ("u00f6") in Latin Char "ö" wandeln | |  | Autor: -Franky- | Datum: 30.07.21 11:17 |
| Hi
Versuche es mal hiermit.
Option Strict On
Option Explicit On
Imports System.Text
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles _
Button1.Click
Debug.Print(RegularExpressions.Regex.Unescape("Sepp P\u00f6lzler"))
End Sub
End Class Mit freundlichen Grüßen
-Franky- |  |
Re: [VB.net] UTF String ("u00f6") in Latin Char "ö" wandeln | |  | Autor: Seek1 | Datum: 04.08.21 08:21 |
| Genaus das wars :-D
Danke !
Ein Problem habe ich noch, wenn ich Strings in XML umwandel.
Da habe ich auch eine Filterliste.
Gibt es da nicht auch so eine "kleine" Lösung?
Aktuelle sieht das so aus:
Sub CheckForForbiddenChar(ByRef StringToCheck)
'
If InStr(StringToCheck, "&") Then
StringToCheck = Strings.Replace(StringToCheck, "&", "&")
End If
If InStr(StringToCheck, "<") Then
StringToCheck = Strings.Replace(StringToCheck, "<", "<")
End If
If InStr(StringToCheck, ">") Then
StringToCheck = Strings.Replace(StringToCheck, ">", ">")
End If
If InStr(StringToCheck, "'") Then
StringToCheck = Strings.Replace(StringToCheck, "'", "'")
End If
If InStr(StringToCheck, Chr(34)) Then
StringToCheck = Strings.Replace(StringToCheck, Chr(34), """)
End If
If InStr(StringToCheck, "Ä") Then
StringToCheck = Strings.Replace(StringToCheck, "Ä", "Ä")
End If
If InStr(StringToCheck, "Ö") Then
StringToCheck = Strings.Replace(StringToCheck, "Ö", "Ö")
End If
If InStr(StringToCheck, "Ü") Then
StringToCheck = Strings.Replace(StringToCheck, "Ü", "Ü")
End If
If InStr(StringToCheck, "ä") Then
StringToCheck = Strings.Replace(StringToCheck, "ä", "ä")
End If
If InStr(StringToCheck, "ö") Then
StringToCheck = Strings.Replace(StringToCheck, "ö", "ö")
End If
If InStr(StringToCheck, "ü") Then
StringToCheck = Strings.Replace(StringToCheck, "ü", "ü")
End If
If InStr(StringToCheck, "ß") Then
StringToCheck = Strings.Replace(StringToCheck, "ß", "ß")
End If
End Sub |  |
Re: [VB.net] UTF String ("u00f6") in Latin Char "ö" wandeln | |  | Autor: Seek1 | Datum: 04.08.21 11:43 |
| Gerade erst jetzt gesehen, das das zweite Zeichen beim Replace von der Seite geparsed wird :-/
Aber ich hoffe, ihr wisst, was ich meine. |  |
Re: [VB.net] UTF String ("u00f6") in Latin Char "ö" wandeln | |  | Autor: Seek1 | Datum: 04.08.21 14:30 |
| Sodala. Doch noch hinbekommen.
StringToCheck = HttpUtility.HtmlEncode(StringToCheck)
Trotzdem Danke  |  |
Re: [VB.net] UTF String ("u00f6") in Latin Char "ö" wandeln | |  | Autor: Seek1 | Datum: 24.08.21 17:33 |
| Hallo Franky,
Nochmals eine Frage.
Wie kann ich dann den Latin Text "ö" wieder in einen "\u00f6" Text zurückwandeln?
RegularExpressions.Regex.Escape funktioniert nicht 
Beitrag wurde zuletzt am 24.08.21 um 17:34:14 editiert. |  |
Re: [VB.net] UTF String ("u00f6") in Latin Char "ö" wandeln | |  | Autor: eierlein | Datum: 25.08.21 19:19 |
| Option Strict On
Option Explicit On
Imports System.Text
Module Module1
Sub Main()
Dim t As String = "ABC-ö-n-äää-ggg_üxmö-nn-ß-n-€--xyz"
Debug.Print(t)
Debug.Print(Escape(t))
End Sub
Function Escape(txt As String) As String
Dim z%
Dim tmp$ = txt
For i As Integer = 0 To txt.Length - 1
z = AscW(txt(i))
If z > 127 Then
tmp = tmp.Replace(ChrW(z), "\u" & z.ToString("x4"))
End If
Next
Escape = tmp
End Function
End Module |  |
Re: [VB.net] UTF String ("u00f6") in Latin Char "ö" wandeln | |  | Autor: Seek1 | Datum: 26.08.21 06:15 |
| WAHNSINN !
Ihr seid meine Helden. |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
sevOutBar 4.0 
Vertikale Menüleisten á la Outlook
Erstellen von Outlook ähnlichen Benutzer- interfaces - mit beliebig vielen Gruppen und Symboleinträgen. Moderner OfficeXP-Style mit Farbverläufen, Balloon-Tips, u.v.m. Weitere InfosTipp des Monats März 2023 Dieter OtterPopUp-Menü wird nicht angezeigt :-(In diesem Tipp verraten wir Ihnen, wie Sie Probleme mit PopUp-Menüs umgehen können, wenn diese unter bestimmten Umständen einfach nicht angezeigt werden. Access-Tools Vol.1 
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|