Функция hex.DecodeString
Функция hex.DecodeString декодирует строку, содержащую шестнадцатеричное представление данных, в исходный срез байтов. Она принимает один параметр - строку с шестнадцатеричными символами (включая необязательный префикс "0x") и возвращает декодированные байты и возможную ошибку. Функция игнорирует пробельные символы и символы новой строки, что позволяет удобно декодировать многострочные шестнадцатеричные строки.
Синтаксис
hex.DecodeString(str)
Пример
Давайте декодируем простую шестнадцатеричную строку "48656c6c6f" в байты:
package main
import (
"encoding/hex"
"fmt"
)
func main() {
str := "48656c6c6f"
res, err := hex.DecodeString(str)
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println(res)
fmt.Printf("%s\n", res)
}
Результат выполнения кода:
[72 101 108 108 111]
"Hello"
Пример
Давайте декодируем шестнадцатеричную строку с пробелами "48 65 6c 6c 6f":
package main
import (
"encoding/hex"
"fmt"
)
func main() {
str := "48 65 6c 6c 6f"
res, err := hex.DecodeString(str)
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Printf("%s\n", res)
}
Результат выполнения кода:
"Hello"
Пример
Давайте попробуем декодировать некорректную шестнадцатеричную строку:
package main
import (
"encoding/hex"
"fmt"
)
func main() {
str := "48656c6c6g"
res, err := hex.DecodeString(str)
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println(res)
}
Результат выполнения кода:
"Error: encoding/hex: invalid byte: U+0067 'g'"
Пример
Давайте декодируем шестнадцатеричную строку с префиксом "0x" - функция сама обработает его:
package main
import (
"encoding/hex"
"fmt"
)
func main() {
str := "0x48656c6c6f"
res, err := hex.DecodeString(str)
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Printf("%s\n", res)
}
Результат выполнения кода:
"Hello"
Смотрите также
-
функцию
hex.EncodeToString,
которая кодирует байты в шестнадцатеричную строку -
функцию
hex.Decode,
которая декодирует шестнадцатеричные данные из среза байтов -
функцию
hex.Dump,
которая возвращает строку с шестнадцатеричным дампом данных -
функцию
hex.NewDecoder,
которая создает декодер для чтения шестнадцатеричных данных из потока