len(s) возвращает длину в байтах, не количество символов. Для UTF-8 количество символов: utf8.RuneCountInString(s) или len([]rune(s)) (последний аллоцирует срез рун).
len(s)
utf8.RuneCountInString(s)
len([]rune(s))