1 回答

TA貢獻1804條經(jīng)驗 獲得超2個贊
如果失敗是因為\'. 使用反引號時,所有反斜杠實際上都是反斜杠而不是轉(zhuǎn)義序列,因此您將原始反斜杠\,后跟單引號'傳遞給strconv.Unquote. 它會導(dǎo)致無效的語法。這里有兩種解決方法:
第一的
只需替換這一行:
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"`
所以'沒有\(zhòng)'。但如果您需要以編程方式轉(zhuǎn)換字符串,請使用第二種方法。
第二
導(dǎo)入"strings":
import (
"fmt"
"strconv"
"strings"
"github.com/google/uuid"
)
并替換\'為':
s = strings.ReplaceAll(s, `\'`, `'`)
所以現(xiàn)在完整的代碼看起來像這樣:
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 關(guān)注
- 305 瀏覽
添加回答
舉報