如何将一串转义序列转换为字节?

How do I convert a string of escape sequences to bytes?

正在创建一个需要处理一些数据的 TCP 服务器。我有一个 net.Conn 实例“连接”,我将从中读取所述数据。代码段的下半部分出现错误,指出它不能将 'esc' 值用作字节值。

const(
esc = "\a\n"
 )
....
c := bufio.NewReader(connection)
data, err := c.ReadBytes(esc)

显然,需要进行一些转换,但是当我尝试时

 const(
esc = "\a\n"
 )
....
c := bufio.NewReader(connection)
data, err := c.ReadBytes(byte(esc))

编译器注意到我无法将 esc 转换为字节。是因为我在包级别将“\a\n”声明为常量值吗?或者是否有其他总体上与我如何构建要读取的字节有关的东西?

您无法将 esc 转换为 byte,因为您无法将字符串转换为单个字节。您可以将字符串转换为字节切片 ([]byte)。

bufio.Reader 仅支持单字节定界符,您应该使用带有自定义拆分功能的 bufio.Scanner 而不是 multi-byte 定界符。

可能是

的修改版本