WideString - это реализация UTF-16 (совместимая с COM BSTR), она не может хранить строки UTF-8, если вы назначите 8-битную строку, она будет преобразована в UTF-16. Но если вы явно не используете правильную функцию преобразования, Delphi будет интерпретировать 8-битную строку, используя текущую кодовую страницу.
Строка UTF-8 может храниться в Delphi AnsiString (тип строки по умолчанию в Delphi 7), но функции управления строками предназначены для кодовых страниц ANSI, а не UTF-8. Разница в том, что UTF-8 является многобайтовым набором символов. Но первые 127 символов ANSI, для кодирования данного «символа» требуется более одного байта, в то время как для многих кодовых страниц ANSI (особенно для европейских языков) требуется только один байт, кодируя только 255 «символов» (тогда как UTF-8 может кодировать весь набор Unicode).
Если вы просто ищете символ табуляции AFAIK, вы можете просто использовать AnsiString, но вы должны убедиться, что любой байт выше $ 80, который вам может понадобиться, не является частью многобайтовой последовательности. Если у вас есть более сложные потребности обработки, может быть проще найти библиотеки, работающие со строками UTF-16, чем UTF-8. Как сказал Роб Кеннеди, JCL является хорошей отправной точкой в качестве бесплатной библиотеки, реализующей UTF-манипуляции со строками.