PowerShell дээр прокси хостын нэрийг IDNA ASCII руу хөрвүүлэх
Прокси төгсгөлийн цэгийн хэрэглэгч Unicode хостын нэрийг шийдэж чадахгүй үед олон улсын домэйн нэрийг IDNA ASCII хэлбэрт нь хөрвүүлнэ үү.
Прокси хостын нэр харуулах хэлбэртээ олон улсын тэмдэгт агуулж болно. IDNA ASCII хэлбэрийг хүлээж буй клиент эсвэл шийдэгч нь бүх URL-ийн дур мэдэн хувь-escape хийсэн хуулбар биш, харин тухайн хостын нэрийг хөрвүүлсэн байхыг шаарддаг.
PowerShell дээр .NET хөрвүүлэлтийг шууд санал болгодог:
$mapping = New-Object System.Globalization.IdnMapping
$asciiHost = $mapping.GetAscii($unicodeProxyHost)
$endpoint = New-Object System.UriBuilder
$endpoint.Scheme = 'http'
$endpoint.Host = $asciiHost
$endpoint.Port = 8080
$proxy = New-Object System.Net.WebProxy($endpoint.Uri)
unicodeProxyHost нь зөвхөн домэйн нэр юм. Порт болон схем тусдаа үлдэнэ. Үүссэн проксийг хүсэлт илгээж буй HTTP клиент дээр ашиглана уу.
Аль хэдийн задлан шинжилсэн Uri-ийн хувьд IdnHost нь IDNA-тай нийцэх хостын нэрийн дүрслэлийг санал болгодог. Аль хэдийн кодлогдсон шошгыг дахин дахин кодлохын оронд анхны төгсгөлийн цэгийг шалгана уу.
Шийдлийн алдаанд прокси хостын нэрийг очих газрын хостын нэрээс ялгаарай. Нэгийг хөрвүүлэх нь нөгөөгийн үсгийн алдаа эсвэл дутуу DNS бичлэгийг засахгүй. Гэрчилгээний таних тэмдэгт зориулсан хостын нэрийг ч хадгална уу; үүнийг дур мэдэн IP хаягаар солих нь холболтын өөр хэсгийг өөрчилдөг.