在URL(域和参数)中将Unicode转换为ASCII

时间:2013-06-13 08:25:45

标签: c# .net url idn

我有一个网址,例如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/

更一般的问题是规范化网址,例如:http://кц.рф/ru/registrators/q?рф=세요

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

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

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

0 个答案:

没有答案