英文:
How do I check a string is url encoded or not in golang?
问题
我不知道字符串的来源,它可能是URL编码的。你想知道如何测试它是普通字符串还是URL编码字符串。你可以使用以下代码进行测试:
import (
"fmt"
"log"
"net/url"
)
func decode(str1 string) string {
resl, err := url.QueryUnescape(str1)
if err != nil {
log.Println(err)
}
return resl
}
func ifUrlEncoded(str string) bool {
_, err := url.QueryUnescape(str)
return err == nil
}
func main() {
str := "elementINPUT61599119%5B%5D"
if ifUrlEncoded(str) {
fmt.Println(decode(str))
} else {
fmt.Println(str)
}
}
这段代码中,ifUrlEncoded
函数用于检测字符串是否是URL编码的,decode
函数用于解码URL编码的字符串。在main
函数中,首先使用ifUrlEncoded
函数检测字符串是否是URL编码的,如果是,则使用decode
函数解码字符串并打印结果;如果不是,则直接打印原始字符串。
英文:
I dont know what is the source of string it can be url encoded how do I test it whether it is a normal string or url encoded string
this using this particular code
func decode(str1 string) {
//str1 := "elementINPUT61599119%5B%5D"
resl, err := url.QueryUnescape(str1)
log.Println(err)
return resl
}
func ifUrlEncoded(string string) bool{
if //function{
return true
}
return false
}
func main(){
if ifUrlEncoded(str){
fmt.Println(decode(str))
}
else{
fmt.Println(str)
}
}
答案1
得分: 4
如果我理解正确,你想在将字符串传递给QueryUnescape
之前确定该字符串是否能够被处理吗?如果是这样,是没有必要的。如果QueryUnescape
无法处理给定的字符串,它将返回一个错误。
decoded, err := url.QueryUnescape(originalString)
if err != nil {
// 无法使用此方法解码字符串,因此将其视为“普通”字符串
decoded = originalString
}
英文:
If I understand correctly, you want to find out if the string is able to be processed by QueryUnescape
before passing it to QueryUnescape
? If so, there's no need. If QueryUnescape
is unable to process the string you gave, it will return an error.
decoded, err := url.QueryUnescape(originalString)
if err != nil {
// The string was not able to be decoded this way, so treat it as a "normal" string
decoded = originalString
}
</details>
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论