首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >无法从字节数组中删除空终止符?

无法从字节数组中删除空终止符?
EN

Stack Overflow用户
提问于 2018-06-04 03:52:28
回答 1查看 408关注 0票数 0

我正在使用Go中的this library (在OSX上)与windows DNS服务器交互。

当运行下面的代码片段时,我得到一个关于空结束符的错误。

代码语言:javascript
复制
 $ ~/go/bin/winrm-dns-client create -d domain.com -n node-0 -t A -v 10.90.61.30
2018/06/03 12:40:22 Error creating DNS record: Reading record: Reading record: Unmarshalling response: Unmarshalling json: invalid character '\x00' after array element

我怀疑,当帮助方法调用sprintf将json响应合并到数组中时,添加了here的空终止符。

然而,即使在添加了如下所示的bytes.Trim之后...我仍然得到一个空结束符错误,似乎空结束符仍然存在...

代码语言:javascript
复制
func unmarshalResponse(resp string) ([]interface{}, error) {
    var data interface{}
    byteRespTrim := []byte(resp)
    fmt.Print("found a null terminator at -- ")
    fmt.Println(bytes.Index(byteRespTrim, []byte("\x00")))
    fmt.Print("total length = ")
    fmt.Println(len(byteRespTrim))
    byteRespTrim = bytes.Trim(byteRespTrim, "\x00")
    fmt.Print("after trim found a null terminator at -- ")
    loc := bytes.Index(byteRespTrim, []byte("\x00"))
    fmt.Print(loc)

当我打电话的时候,我得到了下面的信息

代码语言:javascript
复制
(master)⚡ % ./windows-dns-test create -d domain.com -n openshift-node-0 -t A -v 10.90.61.30                       
found a null terminator at -- 2102
total length = 2615
after trim found a null terminator at -- 2102
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-04 04:17:30

从您的日志中,有问题的字符似乎位于位置2102,而整个数组都有2615元素。

所以看起来Trim不能解决这个问题,因为问题不一定是数组的最后一个字符。

您是否尝试过删除所有匹配项,例如使用Replace

代码语言:javascript
复制
byteRespTrim = bytes.Replace(byteRespTrim, []byte("\x00"), []byte{}, -1)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50670428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档