3

例如,我有一个 Url,http://кц.рф/ru/registrators/并希望将其转换为http://xn--j1ay.xn--p1ai/ru/registrators/表单。

new System.Globalization.IdnMapping().GetAscii(href) 
// result: xn--http://-jig2i.xn--/ru/registrators/-zdo8d
System.Web.HttpUtility.UrlPathEncode(href)
// result: http://%d0%ba%d1%86.%d1%80%d1%84/ru/registrators/

更普遍的问题是标准化 url,如:http://кц.рф/ru/registrators/q?рф=세요

有没有更简单的方法来做到这一点,而不是:

  1. 获取域部分
  2. 如果有任何 Unicode 符号,则使用处理域部分IdnMapping().GetAscii
  3. 处理查询部分使用Uri.EscapeUriString()

部分相关的问题how-to-convert-idn-to-ascii

4

0 回答 0