1 回答
TA贡献1804条经验 获得超2个赞
如果失败是因为\'. 使用反引号时,所有反斜杠实际上都是反斜杠而不是转义序列,因此您将原始反斜杠\,后跟单引号'传递给strconv.Unquote. 它会导致无效的语法。这里有两种解决方法:
第一的
只需替换这一行:
s := `"\235\273\'\021\003\261@\022\226\275o\265\322\002\211\263"`
有了这个:
s := `"\235\273'\021\003\261@\022\226\275o\265\322\002\211\263"`
所以'没有\'。但如果您需要以编程方式转换字符串,请使用第二种方法。
第二
导入"strings":
import (
"fmt"
"strconv"
"strings"
"github.com/google/uuid"
)
并替换\'为':
s = strings.ReplaceAll(s, `\'`, `'`)
所以现在完整的代码看起来像这样:
package main
import (
"fmt"
"strconv"
"strings"
"github.com/google/uuid"
)
func main() {
s := `"\235\273\'\021\003\261@\022\226\275o\265\322\002\211\263"`
s = strings.ReplaceAll(s, `\'`, `'`)
s2, err := strconv.Unquote(s)
if err != nil {
fmt.Println(err)
}
by := []byte(s2)
u, err := uuid.FromBytes(by)
if err != nil {
fmt.Println(err)
}
fmt.Println(u.String())
}
- 1 回答
- 0 关注
- 252 浏览
添加回答
举报