Функция utf8.Valid
Функция utf8.Valid проверяет, является ли переданный срез байт
корректно закодированной UTF-8 строкой. Она возвращает true,
если все байты в срезе образуют валидную последовательность UTF-8,
и false в противном случае. Первым параметром функция принимает
срез байт []byte, который необходимо проверить на корректность
кодировки.
Синтаксис
utf8.Valid(data []byte) bool
Пример
Давайте проверим, является ли строка "Hello, 世界"
валидной UTF-8 строкой:
package main
import (
"fmt"
"unicode/utf8"
)
func main() {
data := []byte("Hello, 世界")
res := utf8.Valid(data)
fmt.Println(res)
}
Результат выполнения кода:
true
Пример
Давайте проверим, является ли строка с некорректной UTF-8 последовательностью валидной:
package main
import (
"fmt"
"unicode/utf8"
)
func main() {
// Некорректная UTF-8 последовательность
data := []byte{0xff, 0xfe, 0xfd}
res := utf8.Valid(data)
fmt.Println(res)
}
Результат выполнения кода:
false
Пример
Давайте проверим, является ли валидной строка, содержащая только ASCII символы:
package main
import (
"fmt"
"unicode/utf8"
)
func main() {
data := []byte("abcde12345")
res := utf8.Valid(data)
fmt.Println(res)
}
Результат выполнения кода:
true
Смотрите также
-
функцию
utf8.ValidString,
которая проверяет строку на валидность UTF-8 -
функцию
utf8.ValidRune,
которая проверяет валидность отдельного руна -
функцию
utf8.RuneCount,
которая подсчитывает количество рун в срезе байт -
функцию
utf8.DecodeRune,
которая декодирует первый рун из среза байт