แปลงชื่อโฮสต์พร็อกซีเป็น IDNA ASCII ใน PowerShell
แปลงชื่อโดเมนสากลให้เป็นรูปแบบ IDNA ASCII เมื่อผู้ใช้ปลายทางของพร็อกซีไม่สามารถแก้ไขชื่อโฮสต์ Unicode ได้
ชื่อโฮสต์พร็อกซีอาจมีอักขระสากลในรูปแบบที่แสดงผล ไคลเอนต์หรือตัวแก้ไขที่คาดหวังรูปแบบ 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 ตามอำเภอใจจะเปลี่ยนส่วนอื่นของการเชื่อมต่อ