في Go، يُفترض أن النصوص مُرمَّزة بترميز UTF-8. ما عليك سوى استخدام for-range على نص للحصول على الـ runes (نقاط شيفرة Unicode) في النص.
for i, rune := range aString {
... // استخدم الـ rune
}
قد يتكوّن الـ rune من 1-4 بايتات (تسمى طول الـ rune) في ترميز UTF-8. هنا، i هو فهرس بداية بايتات الـ rune. يمكن الحصول على حجم كل rune (عدد بايتاته) لكن العملية ليست سلسة جداً. الطريقة التالية أكثر سلاسة فيما يخص أحجام الـ runes:
import "unicode/utf8"
var str = aString
for {
rune, size := utf8.DecodeRuneInString(str)
if size == 0 {
break
}
str = str[size:]
... // استخدم الـ rune
}