Time: 0:00
Test a custom input to verify an edge case (e.g. empty lists, negative numbers, duplicates).
This bug belongs to the type errors pattern
Totals that concatenate, sorts that put 10 before 9, comparisons that refuse to run.
What went wrong: The code incorrectly assumes that string indexing returns a rune, but in Go, string indexing returns a byte, which can be problematic for multi-byte UTF-8 characters.
The fix: Use utf8.DecodeRuneInString to correctly handle multi-byte UTF-8 characters.
Remember: In Go, strings are encoded in UTF-8, and indexing returns bytes, not runes.
The pattern behind it: type errors.
Paste this into any web page or blog post. Visitors fix the bug right there, in their browser.
<iframe src="https://trybughunt.com/embed/4d553faf-ec0d-48a9-8ef0-6d96a80f86a2" title="Debugging challenge: Unexpected character index in multi-byte UTF-8 string" width="100%" height="580" loading="lazy" style="border:1px solid #d4d4d8;border-radius:12px;max-width:760px"></iframe>
<p style="font-size:14px">Debugging challenge from <a href="https://trybughunt.com/challenges/4d553faf-ec0d-48a9-8ef0-6d96a80f86a2">TryBugHunt</a></p>