Je dispose d'une chaîne encodée en UTF-8 que je récupère de la lecture d'un PDF, et j'essaie de supprimer certains caractères qui représentent des espaces mais ne sont pas encodés comme l'espace standard 0x20. Mon problème est que les caractères sont représentés par 3 octets de UTF-8 et je ne parviens pas à trouver comment les convertir en une chaîne ou un caractère afin de pouvoir les remplacer. Les deux caractères UTF-8 que j'essaie de remplacer sont 0xE28087 et 0xE28088.
J'ai essayé Chr et ChrW qui ne prennent que des paramètres entiers jusqu'à 65 000 (probablement des éléments qui peuvent être représentés dans un seul octet en UTF-8)
J'ai également essayé d'utiliser System.Text.Encoding.UTF8.GetChars() avec la représentation en octets de mes caractères, mais le résultat semble être 4 caractères au lieu d'un seul - c'est-à-dire qu'il interprète mon caractère de 3 octets comme des caractères d'un octet chacun.
Dim ResultChars() As Char
Dim bytes() As Byte
Dim SpaceChar As Int32
SpaceChar = Integer.Parse("E28087", Globalization.NumberStyles.HexNumber)
bytes = BitConverter.GetBytes(SpaceChar)
ResultChars = System.Text.Encoding.UTF8.GetChars(bytes)
For Each ResultChar In ResultChars
Debug.WriteLine(ResultChar)
Next
Ce que j'essaie de faire en pseudocode est simplement : ConvertedText = ConvertedText.Replace(StringOrCharofThisUnicodeCharacter("0xE28087"), " ")