Ce face strconv.Quote
strconv.Quote(s) returnează textul între ghilimele duble, scris exact cum l-ai scrie în codul Go: rândul nou devine \n, tab-ul \t, ghilimelele \", iar caracterele invizibile sau invalide devin coduri \x.. sau \u..... Literele cu diacritice rămân neschimbate. Este ce face și verbul %q din fmt.
QuoteToASCII transformă în cod și toate caracterele care nu sunt ASCII: „Iași” devine "Ia\u0219i". Util când rezultatul ajunge într-un sistem care acceptă doar ASCII.
QuoteToGraphic lasă neschimbate toate caracterele „grafice” din Unicode, inclusiv spațiile speciale (spațiul neîntrerupt, U+00A0), pe care Quote le transformă în cod.
Parametri
| Parametru | Descriere |
|---|---|
s |
Textul de pus între ghilimele. |
Ce returnează
Textul între ghilimele, cu secvențe de evitare (escape).
Exemple
Exemplul 1: Caractere speciale făcute vizibile
package main
import (
"fmt"
"strconv"
)
func main() {
s := "Ana a spus: \"Bună!\"\n\tIași"
fmt.Println(strconv.Quote(s))
fmt.Println(strconv.QuoteToASCII(s))
fmt.Printf("%q\n", s)
}
Rezultat
"Ana a spus: \"Bună!\"\n\tIași"
"Ana a spus: \"Bun\u0103!\"\n\tIa\u0219i"
"Ana a spus: \"Bună!\"\n\tIași"
Exemplul 2: Quote față de QuoteToGraphic
Textul conține un spațiu neîntrerupt (U+00A0) între 10 și lei. Quote îl scrie ca cod, QuoteToGraphic îl lasă așa cum este.
package main
import (
"fmt"
"strconv"
)
func main() {
pret := "10\u00a0lei"
fmt.Println(strconv.Quote(pret))
fmt.Println(strconv.QuoteToGraphic(pret))
fmt.Println(strconv.QuoteToASCII("Țară"))
}
Rezultat
"10\u00a0lei"
"10 lei"
"\u021aar\u0103"
Greșeli frecvente
- Folosești
Quoteca să pregătești text pentru JSON, SQL sau HTML. Regulile acelor formate sunt diferite; foloseșteencoding/json, parametri SQL, respectivhtml/template.
Comenzi înrudite
strconv.QuoteRune: Scrie un caracter (rune) între apostrofuri, ca în codul Go: ‘ș’, ‘\n’, ‘\u0219’.strconv.Unquote: Unquote scoate ghilimelele și interpretează secvențele \n, \u…; UnquoteChar decodează un caracter; QuotedPrefix găsește textul citat de la început.strconv.AppendQuote: Variantele Append ale funcțiilor Quote și QuoteRune: adaugă textul sau caracterul între ghilimele la un []byte.strconv.IsPrint: IsPrint și IsGraphic spun dacă un caracter poate fi afișat ca atare; CanBackquote dacă un text încape între backticks.fmt.Printf: Afișează text formatat cu %d, %s, %.2f etc.; Sprintf returnează textul, Fprintf îl scrie într-un fișier sau alt Writer.