[Theory]
[InlineData("http://日本語.idn.icann.org/", "http://xn--wgv71a119e.idn.icann.org/")]
[InlineData("http://例え.テスト/", "http://xn--r8jz45g.xn--zckzah/")]
- public void IDNDecodeTest(string uri, string expected)
+ public void IDNEncodeTest(string uri, string expected)
{
- Assert.Equal(expected, MyCommon.IDNDecode(uri));
+ Assert.Equal(expected, MyCommon.IDNEncode(uri));
}
[Theory]
return result;
}
- ////// <summary>
- ////// URLのドメイン名をPunycode展開します。
- ////// <para>
- ////// ドメイン名がIDNでない場合はそのまま返します。
- ////// ドメインラベルの区切り文字はFULLSTOP(.、U002E)に置き換えられます。
- ////// </para>
- ////// </summary>
- ////// <param name="input">展開対象のURL</param>
- ////// <returns>IDNが含まれていた場合はPunycodeに展開したURLをを返します。Punycode展開時にエラーが発生した場合はnullを返します。</returns>
-
- public static string IDNDecode(string input)
+ /// <summary>
+ /// URLのドメイン名をPunycode展開します。
+ /// <para>
+ /// ドメイン名がIDNでない場合はそのまま返します。
+ /// ドメインラベルの区切り文字はFULLSTOP(.、U002E)に置き換えられます。
+ /// </para>
+ /// </summary>
+ /// <param name="input">展開対象のURL</param>
+ /// <returns>IDNが含まれていた場合はPunycodeに展開したURLをを返します。Punycode展開時にエラーが発生した場合はnullを返します。</returns>
+ public static string IDNEncode(string input)
{
var IDNConverter = new IdnMapping();
string urlStr = "";
try
{
- urlStr = MyCommon.IDNDecode(PostBrowser.Document.Links[0].GetAttribute("href"));
+ urlStr = MyCommon.IDNEncode(PostBrowser.Document.Links[0].GetAttribute("href"));
}
catch (ArgumentException)
{
try
{
urlStr = linkElm.GetAttribute("title");
- href = MyCommon.IDNDecode(linkElm.GetAttribute("href"));
+ href = MyCommon.IDNEncode(linkElm.GetAttribute("href"));
if (string.IsNullOrEmpty(urlStr)) urlStr = href;
linkText = linkElm.InnerText;
if (!linkText.StartsWith("http") && !linkText.StartsWith("#") && !linkText.Contains("."))
continue;
}
- var replacedUrl = MyCommon.IDNDecode(urlStr);
+ var replacedUrl = MyCommon.IDNEncode(urlStr);
if (replacedUrl == null) continue;
if (replacedUrl == urlStr) continue;
if (pwszUrl == "about:blank") return WebBrowserAPI.INET_E_DEFAULT_ACTION;
try
{
- var urlStr = MyCommon.IDNDecode(pwszUrl);
+ var urlStr = MyCommon.IDNEncode(pwszUrl);
if (object.ReferenceEquals(urlStr, null)) return WebBrowserAPI.URLPOLICY_DISALLOW;
var url = new Uri(urlStr);
if (url.Scheme == "data")