Changeset 28405

Show
Ignore:
Timestamp:
01/14/09 12:59:24 (4 years ago)
Author:
syo68k
Message:

マルチバイト文字のURLエンコード処理をMyCommon.vbへ分離

Location:
lang/vb2005/Tween/Tween
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • lang/vb2005/Tween/Tween/MyCommon.vb

    r27696 r28405  
    2121' the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, 
    2222' Boston, MA 02110-1301, USA. 
     23 
     24Imports System.Text 
    2325 
    2426Public Module MyCommon 
     
    100102    End Sub 
    101103 
     104    ''' <summary> 
     105    ''' URLに含まれているマルチバイト文字列を%xx形式でエンコードします。 
     106    ''' <newpara> 
     107    ''' マルチバイト文字のコードはUTF-8またはUnicodeで自動的に判断します。 
     108    ''' </newpara> 
     109    ''' </summary> 
     110    ''' <param name = input>エンコード対象のURL</param> 
     111    ''' <returns>マルチバイト文字の部分をUTF-8/%xx形式でエンコードした文字列を返します。</returns> 
     112 
     113    Public Function urlEncodeMultibyteChar(ByVal input As String) As String 
     114        Dim uri As Uri 
     115        Dim sb As StringBuilder = New StringBuilder(256) 
     116retry: 
     117        For Each c As Char In input 
     118            If Convert.ToInt32(c) > 255 Then 
     119                uri = New Uri(input) 
     120                input = uri.AbsoluteUri 
     121                sb.Length = 0 
     122                GoTo retry 
     123            ElseIf Convert.ToInt32(c) > 127 Then 
     124                sb.Append("%" + Convert.ToInt16(c).ToString("X2")) 
     125            Else 
     126                sb.Append(c) 
     127            End If 
     128        Next 
     129        Return sb.ToString() 
     130    End Function 
     131 
    102132    Public _Outputz As Outputz 
    103133End Module 
  • lang/vb2005/Tween/Tween/OpenURL.vb

    r28400 r28405  
    4949 
    5050    Public Sub AddUrl(ByVal strUrl As String) 
    51         Dim uri As Uri 
    52         Dim input As String = strUrl 
    53  
    54         Dim sb As StringBuilder = New StringBuilder(256) 
    55 retry: 
    56         For Each c As Char In input 
    57             If Convert.ToInt32(c) > 255 Then 
    58                 uri = New Uri(input) 
    59                 input = uri.AbsoluteUri 
    60                 sb.Length = 0 
    61                 GoTo retry 
    62             ElseIf Convert.ToInt32(c) > 127 Then 
    63                 sb.Append("%" + Convert.ToInt16(c).ToString("X2")) 
    64             Else 
    65                 sb.Append(c) 
    66             End If 
    67  
    68         Next 
    69         UrlList.Items.Add(sb.ToString()) 
     51        UrlList.Items.Add(urlEncodeMultibyteChar(strUrl)) 
    7052    End Sub 
    7153 
  • lang/vb2005/Tween/Tween/Tween.vb

    r28400 r28405  
    56115611 
    56125612            If PostBrowser.Document.Links.Count = 1 Then 
    5613                 Dim input As String = PostBrowser.Document.Links(0).GetAttribute("href") 
    5614  
    5615                 Dim sb As StringBuilder = New StringBuilder(256) 
    5616 retry: 
    5617                 For Each c As Char In input 
    5618                     If Convert.ToInt32(c) > 255 Then 
    5619                         uri = New Uri(input) 
    5620                         input = uri.AbsoluteUri 
    5621                         sb.Length = 0 
    5622                         GoTo retry 
    5623                     ElseIf Convert.ToInt32(c) > 127 Then 
    5624                         sb.Append("%" + Convert.ToInt16(c).ToString("X2")) 
    5625                     Else 
    5626                         sb.Append(c) 
    5627                     End If 
    5628                 Next 
    5629                 openUrlStr = sb.ToString() 
     5613                openUrlStr = urlEncodeMultiByteChar(PostBrowser.Document.Links(0).GetAttribute("href")) 
    56305614            Else 
    56315615                For Each linkElm As System.Windows.Forms.HtmlElement In PostBrowser.Document.Links 
     
    57275711        Next 
    57285712 
    5729         slbl.EnsureCapacity(256) 
    57305713        slbl.AppendFormat(My.Resources.SetStatusLabelText1, tur, tal, ur, al, urat, _postTimestamps.Count, _favTimestamps.Count, _tlCount) 
    57315714        If SettingDialog.TimelinePeriodInt = 0 Then