Функция strconv.QuoteToASCII
Функция strconv.QuoteToASCII преобразует переданную строку в строковый литерал в кодировке ASCII, заключая результат в двойные кавычки. В первом параметре функция принимает исходную строку. Она возвращает строку, где все символы, не входящие в набор ASCII, заменяются на escape-последовательности вида \uXXXX. Кроме того, внутри строки экранируются все управляющие символы и символы, которые не могут быть напечатаны. Эта функция особенно полезна при генерации JSON или других текстовых форматов, которые должны содержать только ASCII-символы.
Синтаксис
strconv.QuoteToASCII(str)
Пример
Давайте преобразуем строку 'Hello, 世界', содержащую не-ASCII символы:
package main
import (
"fmt"
"strconv"
)
func main() {
res := strconv.QuoteToASCII("Hello, 世界")
fmt.Println(res)
}
Результат выполнения кода:
"Hello, \u4e16\u754c"
Пример
Теперь применим функцию к строке, содержащей специальные символы, такие как табуляция и кавычка:
package main
import (
"fmt"
"strconv"
)
func main() {
res := strconv.QuoteToASCII("Hello\t\"World\"")
fmt.Println(res)
}
Результат выполнения кода:
"Hello\t\"World\""
Пример
Сравним поведение strconv.QuoteToASCII с обычной функцией strconv.Quote. Для ASCII-строки результат будет одинаковым:
package main
import (
"fmt"
"strconv"
)
func main() {
s := "Hello, Go!"
quoted := strconv.Quote(s)
asciiQuoted := strconv.QuoteToASCII(s)
fmt.Println(quoted)
fmt.Println(asciiQuoted)
}
Результат выполнения кода:
"Hello, Go!"
"Hello, Go!"
Смотрите также
-
функцию
strconv.Quote,
которая преобразует строку в экранированную строку, но сохраняет Unicode-символы -
функцию
strconv.QuoteRune,
которая преобразует руну в экранированный строковый литерал -
функцию
strconv.Unquote,
которая выполняет обратную операцию — преобразует экранированную строку в исходную -
функцию
strconv.IsPrint,
которая проверяет, является ли символ печатаемым в формате UTF-8