请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

nginx中的dig日志UA的编码格式

dig?time=2018%2F3%2F15+%E4%B8%8B%E5%8D%888%3A26%3A27&url=http%3A%2F%2Flocalhost%3A8889%2Flist%2F1.html&ua=Mozilla%2F5.0+(Windows+NT+10.0%3B+Win64%3B+x64)+AppleWebKit%2F537.36+(KHTML%2C+like+Gecko)+Chrome%2F64.0.3282.186+Safari%2F537.36

日志原生出来的格式是这样的,这个是什么原因?编码的问题吗。怎么解析还原为正常的格式?

正在回答

3回答

这个是url的urlencode 可以通过 golang 中的 url 库来解码为正常的格式

package main 
import (
	"fmt"
	"net/url"
) 
func main() {		
	fmt.Println(u.Path) 	
	urlEncoded, err := url.QueryUnescape("http%3A%2F%2Fwww.hehe.com%2F%E8%BF%85+%E9%9B%B7+hehe")
	if err != nil {		
	    fmt.Println(err)	
	}	
	fmt.Println(urlEncoded) // http://www.hehe.com/迅 雷 hehe
}


1 回复 有任何疑惑可以回复我~
大彭 2018-03-16 21:45:54

这个是get请求参数,是被转码过的。需要后端转码 uri.decode;

UA是浏览器固定的格式,这个只能自己解析了

1 回复 有任何疑惑可以回复我~
Pangee 2018-03-18 16:19:34

另外两位同学已经解答啦。url  encode/decode的关系。

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信