Frage von Wissididom, 24

Wo kriege ich eine List aller \u-Konstanten her?

Ich mache gerade ein Programm, welches eine Eingangsdatei hat, die Schreibgeschützt ist und in der sich \u- Konstanten befinden. Nun hatte ich vor diese zu ersetzen komm aber auf Google auf keine passende Liste, sodass ich bei jedem .Replace verwenden kann.

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von PWolff, 14

Eine Liste der ersten 32767 Zeichen könnte man noch im Internet finden.

Wenn du wirklich alle über 1.000.000 Zeichen haben willst, musst du dir vermutlich die Mühe machen, dir mehrere Codetabellen zusammenzusuchen - die Wahrscheinlichkeit, dass sämtliche Schriftfamilien an einer Stelle zusammengefasst sind, ist sehr gering.

Das Ersetzen als solches dürfte aber recht einfach sein - vermutlich stehen nach dem \u jeweils 4 Hexadezimalziffern, die kannst du ziemlich einfach in ein Zeichen umwandeln:

ChrW(Int32.Parse(Eingangsstring.Substring(PositionVonBackslashU+2,4), System.Globalization.NumberStyles.AllowHexSpecifier))
Kommentar von Wissididom ,

Bei mir tritt ein FormatException auf

Kommentar von PWolff ,

Was kommt jeweils nach den \u?

Kommentar von Wissididom ,

Habe es mit folgender Methode behoben:

Public Shared Function ReplaceUnicode(ByVal StringWithExcapedUnicodeChars As String) As String
Do While StringWithExcapedUnicodeChars.Contains("\u")
Dim sUnveraendert As String = "\u" & StringWithExcapedUnicodeChars.Substring(StringWithExcapedUnicodeChars.IndexOf("\u") + 2, 4)
Dim sVeraendert As String = sUnveraendert.Replace("\u", "&H")
sVeraendert = ChrW(sVeraendert)
StringWithExcapedUnicodeChars.Replace(sUnveraendert, sVeraendert)
Loop
Return StringWithExcapedUnicodeChars
End Function
Expertenantwort
von TeeTier, Community-Experte für programmieren, 10

Das sind doch nur die ersten Unicode-Zeichen. :)

Guck mal hier:

https://en.wikipedia.org/wiki/List_of_Unicode_characters

Ansonsten schreib dir doch schnell selbst ein Programm, was dir diese Liste erzeugt! Dafür ist nicht mehr als eine einzige Schleife nötig. :)

Keine passende Antwort gefunden?

Fragen Sie die Community