Ce face encoding/hex.Dump
hex.Dump(date) returnează un text pe mai multe rânduri, în formatul comenzii hexdump -C: în stânga poziția (în hex), apoi câte 16 octeți în hexazecimal, iar în dreapta caracterele corespunzătoare între bare verticale (. pentru octeții care nu se pot afișa).
Este o unealtă de depanare: vezi exact ce octeți are un fișier, un pachet de rețea sau un text cu probleme de codare (de exemplu diacritice salvate greșit sau un BOM la începutul fișierului).
Parametri
| Parametru | Descriere |
|---|---|
data |
Octeții de afișat. |
Ce returnează
Textul tabelului.
Exemple
Exemplul 1: Octeții unui text cu diacritice
package main
import (
"encoding/hex"
"fmt"
)
func main() {
fmt.Print(hex.Dump([]byte("Bună ziua, Iași! ș ț")))
}
Rezultat
00000000 42 75 6e c4 83 20 7a 69 75 61 2c 20 49 61 c8 99 |Bun.. ziua, Ia..|
00000010 69 21 20 c8 99 20 c8 9b |i! .. ..|
Exemplul 2: Începutul unui fișier cu BOM
package main
import (
"encoding/hex"
"fmt"
"os"
)
func main() {
os.WriteFile("export.csv", []byte("\ufeffnume;oras\nAna;Iași\n"), 0o644)
date, _ := os.ReadFile("export.csv")
fmt.Print(hex.Dump(date))
}
Rezultat
00000000 ef bb bf 6e 75 6d 65 3b 6f 72 61 73 0a 41 6e 61 |...nume;oras.Ana|
00000010 3b 49 61 c8 99 69 0a |;Ia..i.|
Greșeli frecvente
- Afișezi cu
Dumpdate foarte mari: fiecare 16 octeți fac un rând de aproape 80 de caractere. Afișează doar începutul (date[:64]).
Comenzi înrudite
encoding/hex.EncodeToString: Scrie octeții în hexazecimal (două cifre 0-9a-f pe octet) și înapoi; forma obișnuită pentru hash-uri și chei.