例如,我有一个 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?рф=세요
有没有更简单的方法来做到这一点,而不是:
- 获取域部分
- 如果有任何 Unicode 符号,则使用处理域部分
IdnMapping().GetAscii
- 处理查询部分使用
Uri.EscapeUriString()
部分相关的问题how-to-convert-idn-to-ascii