Константа utf8.RuneSelf
Константа utf8.RuneSelf представляет собой максимальное значение,
которое может быть закодировано одним байтом в UTF-8. Её значение равно
0x80 (128 в десятичной системе). Все символы с кодом меньше этого значения
кодируются одним байтом, что соответствует ASCII-символам. Эта константа
полезна при низкоуровневой работе с UTF-8 строками и байтовыми
последовательностями.
Синтаксис
utf8.RuneSelf
Пример
Давайте выведем значение константы utf8.RuneSelf:
package main
import (
"fmt"
"unicode/utf8"
)
func main() {
res := utf8.RuneSelf
fmt.Println(res)
}
Результат выполнения кода:
128
Пример
Давайте используем utf8.RuneSelf для проверки, является ли байт
началом многобайтового символа:
package main
import (
"fmt"
"unicode/utf8"
)
func main() {
b := byte('A')
if b < utf8.RuneSelf {
fmt.Println("This byte is a single-byte character")
}
b2 := byte(0xE0)
if b2 >= utf8.RuneSelf {
fmt.Println("This byte is a start of multi-byte character")
}
}
Результат выполнения кода:
"This byte is a single-byte character"
"This byte is a start of multi-byte character"
Пример
Давайте сравним байты строки с utf8.RuneSelf, чтобы определить
количество однобайтовых символов:
package main
import (
"fmt"
"unicode/utf8"
)
func main() {
str := "Hello, 世界"
count := 0
for i := 0; i < len(str); i++ {
if str[i] < utf8.RuneSelf {
count++
}
}
fmt.Printf("Single-byte characters: %d\n", count)
fmt.Printf("Total bytes: %d\n", len(str))
}
Результат выполнения кода:
"Single-byte characters: 7"
"Total bytes: 13"
Смотрите также
-
константу
utf8.MaxRune,
которая определяет максимальное значение руны -
константу
utf8.UTFMax,
которая определяет максимальное количество байт для руны -
константу
utf8.RuneError,
которая представляет собой код ошибки для некорректных рун -
функцию
utf8.RuneLen,
которая возвращает количество байт для руны