英文:
How in Golang convert punycode to unicode?
问题
我想要转换URL,例如:
> xn--h1aaebtrh5b.xn--p1ai --> кисточки.рф
当然也可以反向转换:
> kremlin.ru ---> xn--d1abbgf6aiiy.xn--p1ai
我尝试使用idna包,但无法导入供应商包idna
链接在文档中:
https://godoc.org/golang.org/x/net/idna#Profile.ToUnicode
尝试导入:
import "golang_org/x/net/idna"
出现错误:
main.go:18:8: 在任何位置都找不到包“golang_org/x/net/idna”(来自$GOROOT)
/home/arseny/go/src/golang_org/x/net/idna(来自$GOPATH)
另一种尝试:
import "vendor/golang_org/x/net/idna"
错误:
main.go:18:8: 必须导入为golang_org/x/net/idna
main.go:19:2: 不允许使用供应商包
英文:
I wanna convert url f.e.:
> xn--h1aaebtrh5b.xn--p1ai --> кисточки.рф
And of course reverse:
> kremlin.ru ---> xn--d1abbgf6aiiy.xn--p1ai
I try use idna package, but i can't import vendor package idna
Link on doc:
https://godoc.org/golang.org/x/net/idna#Profile.ToUnicode
Try import:
import "golang_org/x/net/idna"
Get error:
main.go:18:8: cannot find package "golang_org/x/net/idna" in any of:
/usr/local/go/src/golang_org/x/net/idna (from $GOROOT)
/home/arseny/go/src/golang_org/x/net/idna (from $GOPATH)
Another try:
import "vendor/golang_org/x/net/idna"
Errors:
main.go:18:8: must be imported as golang_org/x/net/idna
main.go:19:2: use of vendored package not allowed
答案1
得分: 2
有些人说这段代码有效。
在bash中:
go get golang.org/x/net/idna
示例代码go:
package main
import (
"fmt"
"golang.org/x/net/idna"
)
var p *idna.Profile
func main() {
// Raw Punycode没有限制,也不进行映射。
p = idna.New()
fmt.Println(p.ToUnicode("xn--d1abbgf6aiiy.xn--p1ai"))
}
但我仍然希望存在另一种方式。我不喜欢将包的本地副本复制到$GOROOT路径中。
英文:
Some people say that this code work
In bash:
go get golang.org/x/net/idna
Example code go:
package main
import (
"fmt"
"golang.org/x/net/idna"
)
var p *idna.Profile
func main() {
// Raw Punycode has no restrictions and does no mappings.
p = idna.New()
fmt.Println(p.ToUnicode("xn--d1abbgf6aiiy.xn--p1ai"))
}
But i'm still hope that another way exist. I unlike to do local copy of package into $GOROOT path.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论