Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

GO言語でURLデコード

前回に引き続き、今回はGO言語でURLデコードの方法

実際のところ

package main

import (
	"fmt"
	"net/url"
)

func main() {
	var urlStr string = "http://sample.org/?person=%D8%B5%D9%84%D8%A7%D8%AD+%D8%A7%D9%84%D8%AF%D9%8A%D9%86+%D8%A7%D9%84%D8%A3%D9%8A%D9%88%D8%A8%D9%8A&person=%E6%9C%A8%E9%87%8E%E4%BF%AE%E9%80%A0&sample=%E3%81%AA%E3%81%AA%E3%81%97"
    	l2, _ := url.Parse(urlStr)
    	fmt.Println("base", l2)
    	fmt.Println("raw", l2.RawQuery)
    	fmt.Println("query", l2.Query())
    	fmt.Println("query['person']", l2.Query()["person"])
}

結果はこんな感じ

base http://sample.org/?person=%D8%B5%D9%84%D8%A7%D8%AD+%D8%A7%D9%84%D8%AF%D9%8A%D9%86+%D8%A7%D9%84%D8%A3%D9%8A%D9%88%D8%A8%D9%8A&person=%E6%9C%A8%E9%87%8E%E4%BF%AE%E9%80%A0&sample=%E3%81%AA%E3%81%AA%E3%81%97
raw person=%D8%B5%D9%84%D8%A7%D8%AD+%D8%A7%D9%84%D8%AF%D9%8A%D9%86+%D8%A7%D9%84%D8%A3%D9%8A%D9%88%D8%A8%D9%8A&person=%E6%9C%A8%E9%87%8E%E4%BF%AE%E9%80%A0&sample=%E3%81%AA%E3%81%AA%E3%81%97
query map[person:[صلاح الدين الأيوبي 木野修造] sample:[ななし]]
query['person']	 [صلاح الدين الأيوبي 木野修造]