为了账号安全,请及时绑定邮箱和手机立即绑定

Go xml.Marshal 返回无效字符

Go xml.Marshal 返回无效字符

Go
开心每一天1111 2021-08-23 16:34:27
我使用下面的代码生成字符串 str 的 XML 编码:str := string([]byte{0x01})marshalBytes, _ := xml.Marshal(str)fmt.Println(string(marshalBytes)) // output: <string>�</string>; � is [239 191 189] in bytes.显然, 不等同于 0x01。我该如何解决?
查看完整描述

1 回答

?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

字节 [239 191 189] 是Unicode Replacement Character的 UTF-8 编码。

XML 封送拆收器将字节 0x1 替换为 Unicode 替换字符,因为字节 0x01在 XML 中不是合法字符

无法阻止 XML 封送拆收器使用替换。


查看完整回答
反对 回复 2021-08-23
  • 1 回答
  • 0 关注
  • 274 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信