Функция strings.ToValidUTF8
Функция strings.ToValidUTF8 проверяет строку на наличие невалидных UTF-8 последовательностей и заменяет их на указанную подстроку. Первым параметром функция принимает исходную строку для проверки, вторым параметром - строку замены для невалидных символов.
Синтаксис
strings.ToValidUTF8(str, replacement)
Пример
Давайте проверим строку, содержащую невалидную UTF-8 последовательность, и заменим ее на символ вопросительного знака:
package main
import (
"fmt"
"strings"
)
func main() {
// Создаем строку с невалидной UTF-8 последовательностью
invalidStr := "Hello\xffWorld"
res := strings.ToValidUTF8(invalidStr, "?")
fmt.Println(res)
}
Результат выполнения кода:
"Hello?World"
Пример
Заменим невалидные UTF-8 символы на пустую строку, тем самым удалив их:
package main
import (
"fmt"
"strings"
)
func main() {
// Создаем строку с невалидными UTF-8 последовательностями
invalidStr := "abc\xff\xfedef"
res := strings.ToValidUTF8(invalidStr, "")
fmt.Println(res)
}
Результат выполнения кода:
"abcdef"
Пример
Если строка полностью валидна, функция возвращает ее без изменений:
package main
import (
"fmt"
"strings"
)
func main() {
validStr := "Hello, 世界"
res := strings.ToValidUTF8(validStr, "?")
fmt.Println(res)
}
Результат выполнения кода:
"Hello, 世界"
Пример
Проверим строку, содержащую несколько невалидных последовательностей, и заменим их на пользовательскую подстроку:
package main
import (
"fmt"
"strings"
)
func main() {
// Создаем строку с несколькими невалидными UTF-8 последовательностями
invalidStr := "\xffHello\xfe\xffWorld\xfd"
res := strings.ToValidUTF8(invalidStr, "[INVALID]")
fmt.Println(res)
}
Результат выполнения кода:
"[INVALID]Hello[INVALID][INVALID]World[INVALID]"
Смотрите также
-
функцию
utf8.ValidString,
которая проверяет, является ли строка валидным UTF-8 -
функцию
utf8.RuneCountInString,
которая подсчитывает количество рун в строке -
функцию
strings.Map,
которая преобразует каждый символ строки с помощью функции -
функцию
strings.ReplaceAll,
которая заменяет все вхождения подстроки на другую строку