Функция utf8.ValidString

Функция utf8.ValidString проверяет, является ли переданная строка полностью валидной последовательностью байт в кодировке UTF-8. Она возвращает true, если строка состоит только из корректных UTF-8 символов, и false в противном случае. Функция принимает один параметр — строку для проверки.

Синтаксис

goutf8.ValidString(str)

Пример

Давайте проверим валидность строки, состоящей из обычных ASCII символов:

gopackage main

import (
  "fmt"
  "unicode/utf8"
)

func main() {
  res := utf8.ValidString("abcde")
  fmt.Println(res)
}

Результат выполнения кода:

gotrue

Пример

Теперь проверим строку, содержащую валидные символы UTF-8, включая символы из разных языков:

gopackage main

import (
  "fmt"
  "unicode/utf8"
)

func main() {
  res := utf8.ValidString("Привет, 世界")
  fmt.Println(res)
}

Результат выполнения кода:

gotrue

Пример

Рассмотрим случай с невалидной UTF-8 строкой. Для демонстрации мы создадим строку, содержащую последовательность байт, которая не является валидным UTF-8 символом:

gopackage main

import (
  "fmt"
  "unicode/utf8"
)

func main() {
  // Некорректная UTF-8 последовательность
  invalidStr := string([]byte{0xff, 0xfe})
  res := utf8.ValidString(invalidStr)
  fmt.Println(res)
}

Результат выполнения кода:

gofalse

Смотрите также

  • функцию utf8.Valid,
    которая проверяет валидность UTF-8 в срезе байт
  • функцию utf8.ValidRune,
    которая проверяет, является ли руна валидной UTF-8
  • функцию utf8.RuneCountInString,
    которая подсчитывает количество рун в строке
  • функцию strings.ToValidUTF8,
    которая заменяет невалидные UTF-8 символы в строке