encoding/hex.Dump în Go

Afișează octeții ca tabel: adresa, 16 octeți în hex pe rând și caracterele lor, ca hexdump -C.

Sintaxă
func Dump(data []byte) string

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 Dump date 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.