Golang Go语言中,字符串\x00 想转成有转义意义的字符串,可以吗
null
Golang Go语言中,字符串\x00 想转成有转义意义的字符串,可以吗
这应该是 16 进制的 ascii 吧
更多关于Golang Go语言中,字符串\x00 想转成有转义意义的字符串,可以吗的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
对的,想转成 ascii,但是一直输出\x00
\x00 的 ASCII 是 null,怎么显示……
是的,就是空的,但是我这里输出了\x00 这个字符串。
我从一个文件里读到一个字符串\x00 想转成 null 转不了
所以在这里请教下诸位大佬
应该是你的 terminal 的原因
package main
import “fmt"
func main() {
fmt.Printf(”%#v", “\000”)
fmt.Printf("%v", “\000”)
fmt.Print("\000")
}
难道用的 %#v ?
后两个都是正常的。
用 encoding/hex 转成 hex string ?
准确来说, 是\00 怎么通过程序转成 \0
在Golang(Go语言)中,将包含空字符(\x00
,即ASCII码的NULL字符)的字符串转换为包含转义意义的字符串是完全可行的,但需要注意的是,Go语言的字符串处理默认并不会自动将\x00
转换为转义字符表示,因为\x00
在字符串中通常被视为字符串的终结符(null terminator),尽管Go语言的字符串不是以\x00
结尾的。
如果你想要将\x00
字符显式地表示为转义字符\x00
的形式,你可以通过字符串遍历和构建新的字符串来实现。以下是一个简单的示例代码:
package main
import (
"fmt"
)
func main() {
str := "\x00hello"
escapedStr := ""
for i := 0; i < len(str); i++ {
if str[i] == 0 {
escapedStr += "\\x00"
} else {
escapedStr += string(str[i])
}
}
fmt.Println(escapedStr) // 输出: \x00hello
}
这段代码遍历输入字符串str
,当遇到\x00
字符时,将其替换为"\x00"
的字符串表示形式。对于其他字符,则直接添加到结果字符串escapedStr
中。这样,你就可以得到一个将\x00
字符显式表示为\x00
的字符串了。