アプリ版:「スタンプのみでお礼する」機能のリリースについて

VB6もしくはVBAですが、

文字列をShift_JISへurlエンコードしたいと思います。

utfやeucは方法があったのですが、Shift_JISに関しては
見つかりませんでした。

よろしくお願いします。

A 回答 (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


かなり大雑把な判定なので細かいところは加筆修正してください。(他にもエスケープし忘れている文字がある気がする・・・)
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!