最新閲覧日:

こんにちは、初めて質問します。
私は現在BASE64(VB)を制作中の者です。半角英数のエンコード・デコードのコーディングは完成したのですが、全角文字となると手も足も出ない状態です。
そこで、これのついて御存知の方、全角文字のエンコード・デコードのコーディング方法を教えて下さい。
サンプルコードも見せていただければ幸いです。
宜しくお願いします。

A 回答 (2件)

書き方はいろいろあると思いますが、参考までにデコードの例・・・。


※ソースをそのまま貼り付けたら、かなりみづらくなってしまいました。

Sub Main()
Dim pos As Long
Dim Out1 As Long
Dim Out2 As Long
Dim prst As Long
Dim rText As String

rText = "%82%B1%82%EA%82%C5%82%C5%82%AB%82%E9%82%CD%82%B8%82%C5%82%B7%81B"

pos = 1
Do
prst = InStr(pos, rText, "%")
If prst = 0 Then Exit Do
Out1 = Int("&H" & Mid$(rText, prst + 1, 2))
If ((&H81 <= Out1 And Out1 <= &H9F) Or _
(&HE0 <= Out1 And Out1 <= &HEF)) Then
If Mid$(rText, prst + 3, 1) = "%" Then
Out2 = Int("&H" & Mid$(rText, prst + 4, 2))
If &H40 <= Out2 And Out2 <= &HFC Then
rText = Left$(rText, prst - 1) & Chr(Val("&H" & Mid$(rText, prst + 1, 2) & Mid$(rText, prst + 4, 2))) & Right$(rText, Len(rText) - prst - 5)
Else
rText = Left$(rText, prst - 1) & Chr(Val("&H" + (Mid$(rText, prst + 1, 2)))) & Right$(rText, Len(rText) - prst - 2)
End If
pos = prst + 1
Else
Out2 = Asc(Mid$(rText, prst + 3, 1))
If &H40 <= Out2 And Out2 <= &HEF Then
rText = Left$(rText, prst - 1) & Chr(Val("&H" & Mid$(rText, prst + 1, 2) & Hex(Asc(Mid$(rText, prst + 3, 1))))) & Right$(rText, Len(rText) - prst - 3)
Else
rText = Left$(rText, prst - 1) & Chr(Val("&H" + (Mid$(rText, prst + 1, 2)))) & Right$(rText, Len(rText) - prst - 2)
End If
pos = prst + 1
End If
Else
rText = Left$(rText, prst - 1) & Chr(Val("&H" + (Mid$(rText, prst + 1, 2)))) & Right$(rText, Len(rText) - prst - 2)
pos = prst + 1
End If
Loop

Debug.Print rText

End Sub
    • good
    • 0

単に、1byteづつ変換すればいいだけだと思いますが。



BASE64は、単に1byteのバイナリ(0~255)を文字に置き換えているだけですから、半角も全角も関係無いはずです。
    • good
    • 1

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

このQ&Aを見た人が検索しているワード


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ