OSDN Git Service

MyCommon.urlEncodeMultibyteCharメソッドを削除
authorKimura Youichi <kim.upsilon@bucyou.net>
Sun, 30 Jun 2019 10:04:34 +0000 (19:04 +0900)
committerKimura Youichi <kim.upsilon@bucyou.net>
Sun, 30 Jun 2019 10:05:00 +0000 (19:05 +0900)
OpenTween.Tests/MyCommonTest.cs
OpenTween/MyCommon.cs
OpenTween/Tween.cs

index 3457c12..ced990d 100644 (file)
@@ -39,18 +39,6 @@ namespace OpenTween
     public class MyCommonTest
     {
         [Theory]
-        [InlineData("http://ja.wikipedia.org/wiki/Wikipedia", "http://ja.wikipedia.org/wiki/Wikipedia")]
-        [InlineData("http://ja.wikipedia.org/wiki/メインページ",
-            "http://ja.wikipedia.org/wiki/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8")]
-        [InlineData("http://fr.wikipedia.org/wiki/Café", "http://fr.wikipedia.org/wiki/Caf%E9")]
-        [InlineData("http://ja.wikipedia.org/wiki/勇気100%", "http://ja.wikipedia.org/wiki/%E5%8B%87%E6%B0%97100%25")]
-        [InlineData("http://ja.wikipedia.org/wiki/Bio_100%", "http://ja.wikipedia.org/wiki/Bio_100%25")]
-        public void urlEncodeMultibyteCharTest(string uri, string expected)
-        {
-            Assert.Equal(expected, MyCommon.urlEncodeMultibyteChar(uri));
-        }
-
-        [Theory]
         [InlineData("http://日本語.idn.icann.org/", "http://xn--wgv71a119e.idn.icann.org/")]
         [InlineData("http://例え.テスト/", "http://xn--r8jz45g.xn--zckzah/")]
         public void IDNEncodeTest(string uri, string expected)
index 3c531bf..5b46cdd 100644 (file)
@@ -453,75 +453,6 @@ namespace OpenTween
         }
 
         /// <summary>
-        /// URLに含まれているマルチバイト文字列を%xx形式でエンコードします。
-        /// <newpara>
-        /// マルチバイト文字のコードはUTF-8またはUnicodeで自動的に判断します。
-        /// </newpara>
-        /// </summary>
-        /// <param name="_input">エンコード対象のURL</param>
-        /// <returns>マルチバイト文字の部分をUTF-8/%xx形式でエンコードした文字列を返します。</returns>
-
-        public static string urlEncodeMultibyteChar(string _input)
-        {
-            Uri uri = null;
-            var sb = new StringBuilder(256);
-            var result = "";
-            var c_ = 'd';
-            foreach (var c in _input)
-            {
-                c_ = c;
-                if (Convert.ToInt32(c) > 127 || c == '%') break;
-            }
-            if (Convert.ToInt32(c_) <= 127 && c_ != '%') return _input;
-
-            var input = Uri.UnescapeDataString(_input);
-        retry:
-            foreach (char c in input)
-            {
-                if (Convert.ToInt32(c) > 255)
-                {
-                    // Unicodeの場合(1charが複数のバイトで構成されている)
-                    // Uriクラスをnewして再構成し、入力をPathAndQueryのみとしてやり直す
-                    foreach (var b in Encoding.UTF8.GetBytes(c.ToString()))
-                    {
-                        sb.AppendFormat("%{0:X2}", b);
-                    }
-                }
-                else if (Convert.ToInt32(c) > 127 || c == '%')
-                {
-                    // UTF-8の場合
-                    // Uriクラスをnewして再構成し、入力をinputからAuthority部分を除去してやり直す
-                    if (uri == null)
-                    {
-                        uri = new Uri(input);
-                        input = input.Remove(0, uri.GetLeftPart(UriPartial.Authority).Length);
-                        sb.Length = 0;
-                        goto retry;
-                    }
-                    else
-                    {
-                        sb.Append("%" + Convert.ToInt16(c).ToString("X2").ToUpperInvariant());
-                    }
-                }
-                else
-                {
-                    sb.Append(c);
-                }
-            }
-
-            if (uri == null)
-            {
-                result = sb.ToString();
-            }
-            else
-            {
-                result = uri.GetLeftPart(UriPartial.Authority) + sb;
-            }
-
-            return result;
-        }
-
-        /// <summary>
         /// URLのドメイン名をPunycode展開します。
         /// <para>
         /// ドメイン名がIDNでない場合はそのまま返します。
index ac24bc4..5c539e4 100644 (file)
@@ -9087,10 +9087,10 @@ namespace OpenTween
                     }
                     else if (Converter_Type != MyCommon.UrlConverter.Nicoms)
                     {
-                        //短縮URL変換 日本語を含むかもしれないのでURLエンコードする
+                        // 短縮URL変換
                         try
                         {
-                            var srcUri = new Uri(MyCommon.urlEncodeMultibyteChar(tmp));
+                            var srcUri = new Uri(tmp);
                             var resultUri = await ShortUrl.Instance.ShortenUrlAsync(Converter_Type, srcUri);
                             result = resultUri.AbsoluteUri;
                         }
@@ -9161,10 +9161,10 @@ namespace OpenTween
                     }
                     else if (Converter_Type != MyCommon.UrlConverter.Nicoms)
                     {
-                        //短縮URL変換 日本語を含むかもしれないのでURLエンコードする
+                        // 短縮URL変換
                         try
                         {
-                            var srcUri = new Uri(MyCommon.urlEncodeMultibyteChar(tmp));
+                            var srcUri = new Uri(tmp);
                             var resultUri = await ShortUrl.Instance.ShortenUrlAsync(Converter_Type, srcUri);
                             result = resultUri.AbsoluteUri;
                         }