亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將此 IDNA URL 轉換為 Unicode?

如何將此 IDNA URL 轉換為 Unicode?

Go
aluckdog 2022-09-05 09:11:55
我想將IDNA ASCII URL翻譯成Unicode。package mainimport (    "golang.org/x/net/idna"    "log")func main() {    input := "https://xn---36-mddtcafmzdgfgpbxs0h7c.xn--p1ai"    idnaProfile := idna.New()    output, err := idnaProfile.ToUnicode(input)    if err != nil {        log.Fatal(err)    }    log.Printf("%s", output)}輸出為:https://xn---36-mddtcafmzdgfgpbxs0h7c.рф似乎IDNA軟件包只轉換TLD。有沒有一些選項可以轉換完整的URL?我需要獲得與將 ASCII 網址粘貼到 Chrome 中時相同的結果:https://природный-источник36.рф
查看完整描述

2 回答

?
拉風的咖菲貓

TA貢獻1995條經驗 獲得超2個贊

您只需要先解析 URL:


package main


import (

   "golang.org/x/net/idna"

   "net/url"

)


func main() {

   p, e := url.Parse("https://xn---36-mddtcafmzdgfgpbxs0h7c.xn--p1ai")

   if e != nil {

      panic(e)

   }

   s, e := idna.ToUnicode(p.Host)

   if e != nil {

      panic(e)

   }

   println(s == "природный-источник36.рф")

}

https://golang.org/pkg/net/url#Parse


查看完整回答
反對 回復 2022-09-05
?
桃花長相依

TA貢獻1860條經驗 獲得超8個贊

IDNA字符串由由點“.”分隔的“標簽”組成。每個標簽都可以編碼(如果它以“xn--”開頭)或不編碼(如果它不以“xn--”開頭)。字符串由兩個標簽和 .只有第二個是IDNA編碼的。https://xn---36-mddtcafmzdgfgpbxs0h7cxn--p1ai

只需處理URL中經過IDNA編碼的部分(即主機名)。其他任何事情都是荒謬的,行不通。


查看完整回答
反對 回復 2022-09-05
  • 2 回答
  • 0 關注
  • 150 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號