Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

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']	 [صلاح الدين الأيوبي 木野修造]