• 締切済み

VBでShift_JISへurlエンコードできないでしょうか?

VB6もしくはVBAですが、 文字列をShift_JISへurlエンコードしたいと思います。 utfやeucは方法があったのですが、Shift_JISに関しては 見つかりませんでした。 よろしくお願いします。

みんなの回答

回答No.1

ASPには関数があるのですが、VB6.0のVBAにはどうだったか・・・ まぁ、コードとしてもたいした量ではないので。 Option Explicit Private Sub Command1_Click() Text2.text = UrlEncode(Text1.text) End Sub Private Function UrlEncode(ByVal text As String) As String Dim i As Integer, bWide As Boolean Dim bytes() As Byte Dim ret As String ret = "" ' Shift_JISのバイト配列に変換 bytes = StrConv(text, vbFromUnicode) For i = 0 To UBound(bytes) ' 2バイト文字をエンコード If bWide Or (bytes(i) And &H80) Then ret = ret & "%" & Right("00" & Hex(bytes(i)), 2) bWide = Not bWide ' スペースを置き換え ElseIf bytes(i) = &H20 Then ret = ret & "+" ' 1バイト文字はそのまま Else ret = ret & Chr(bytes(i)) End If Next UrlEncode = ret End Function かなり大雑把な判定なので細かいところは加筆修正してください。(他にもエスケープし忘れている文字がある気がする・・・)

関連するQ&A

専門家に質問してみよう