У меня есть строка кодирования UTF-8, которую я получаю при чтении PDF, и я пытаюсь удалить некоторые символы, которые представляют пробелы, но не закодированы как стандартный пробел 0x20. Моя проблема в том, что символы представлены 3 байтами UTF-8, и я не могу понять, как передать это в строку или символ, чтобы я мог сделать замену. Два символа UTF-8, которые я пытаюсь заменить, это 0xE28087 и 0xE28088.
Я пробовал Chr и ChrW, которые принимают целочисленные параметры только до 65000 (предположительно элементы, которые могут быть представлены одним байтом в UTF-8)
Я также попытался использовать System.Text.Encoding.UTF8.GetChars () с байтовым представлением моих символов, но в результате получается 4 символа вместо одного - IE интерпретирует мой 3-байтовый символ как отдельный байтовые символы
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
То, что я пытаюсь сделать в псевдокоде, просто:
ConvertedText = ConvertedText.Replace (StringOrCharofThisUnicodeCharacter ("0xE28087"), "")