1. Вы не обязаны в лексическом анализаторе поддерживать разные виды пробелов и т.п, можете выдавать сообщение, что символ недопустим.
2. Для лексического анализа не важно однобайтная кодировка или такая многобайтная, как Utf-8, потому что анализатору не важно, сколько символов видит человек, ему важно идентичность используемых цепочек, что в нормализованном Utf-8 легко обеспечить, а больше и не нужно.