gpt4 book ai didi

Go - 如何将二进制字符串作为文本转换为二进制字节?

转载 作者:IT王子 更新时间:2023-10-29 01:51:40 25 4
gpt4 key购买 nike

我有一个 text 转储文件,其中包含 string,如下所示:

x\x9cK\xb42\xb5\xaa.\xb6\xb2\xb0R\xcaK-\x09J\xccKOU

我需要将它们转换为 []byte

有人可以建议如何在 Go 中完成此操作吗?
python 等效于 decode('string_escape')

最佳答案

这是一种方法。请注意,这不是 python string_escape 格式的完整解码,但考虑到您给出的示例可能就足够了。

playground link

package main

import (
"fmt"
"log"
"regexp"
"strconv"
)

func main() {
b := []byte(`x\x9cK\xb42\xb5\xaa.\xb6\xb2\xb0R\xcaK-\x09J\xccKOU`)
re := regexp.MustCompile(`\\x([0-9a-fA-F]{2})`)
r := re.ReplaceAllFunc(b, func(in []byte) []byte {
i, err := strconv.ParseInt(string(in[2:]), 16, 64)
if err != nil {
log.Fatalf("Failed to convert hex: %s", err)
}
return []byte{byte(i)}
})
fmt.Println(r)
fmt.Println(string(r))
}

我确实有使用json解码器的想法,但不幸的是它不理解\xYY语法。

关于Go - 如何将二进制字符串作为文本转换为二进制字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15885542/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com