Test program:
package main
import (
"fmt"
"net/url"
)
func main() {
u, err := url.Parse("tcp://[fe80::cefa:ff:fef3:5fcc%25Wireless%20Network%20Connection]:22000")
if err != nil {
fmt.Println(err)
} else {
fmt.Println("OK:", u)
}
}
Fine in 1.5.2:
jb@syno:~/tmp $ go version
go version go1.5.2 darwin/amd64
jb@syno:~/tmp $ go run test.go
OK: tcp://[fe80::cefa:ff:fef3:5fcc%25Wireless%20Network%20Connection]:22000
Errors in 1.6beta2:
jb@syno:~/tmp $ go run test.go
parse tcp://[fe80::cefa:ff:fef3:5fcc%25Wireless%20Network%20Connection]:22000: invalid URL escape "%20"
jb@syno:~/tmp $ go version
go version devel +66330d8 Wed Jan 13 23:40:13 2016 +0000 darwin/amd64
That's how Windows represents scope IDs.