- 締切済み
VBでShift_JISへurlエンコードできないでしょうか?
VB6もしくはVBAですが、 文字列をShift_JISへurlエンコードしたいと思います。 utfやeucは方法があったのですが、Shift_JISに関しては 見つかりませんでした。 よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- うぃず(@Wizard_Zero)
- ベストアンサー率69% (344/495)
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 かなり大雑把な判定なので細かいところは加筆修正してください。(他にもエスケープし忘れている文字がある気がする・・・)