Set ObjRgExDecode=New RegExp With ObjRgExDecode .Global=true .Pattern="%[0-9A-F][0-9A-F]|." .IgnoreCase=true End With 005612005/04/12(火) 17:43:48ID:??? '●シフトJISデコード sc;エンコード文字列 Public Function PF_Decode(ByVal sc) Dim ms,d0,d1,d2,d3,d,s On Error Resume Next sc=replace(sc,"+"," ",1,-1,1) Set ms=ObjRgExDecode.Execute(sc) d0="" 005712005/04/12(火) 17:45:51ID:??? For Each d1 in ms d2=split(d1,"%")
if d0="" then '1バイト目か? if d2(0)="" then 'エンコード文字だったら d3=clng("&H" & d2(1)) if (d3>=&H81 and d3<=&H9f) or (d3>=&He0 and d3<=&Hef) then '2バイト文字の1バイト目なら d0=d2(1) d="" else d0="" d=chr("&H" & d2(1)) End if Else d0="" d=d2(0) End if 005812005/04/12(火) 17:46:42ID:??? Else '日本語2バイト目だったら if d2(0)="" then 'エンコード文字だったら d=chr("&H" & d0 & d2(1)) d0="" else '通常文字だったら d=chr("&H" & d0 & hex( asc(d2(0)) ) ) d0="" end if End if s=s & d next if err.number>0 then PF_Decode="" Else PF_Decode=CStr(s) End if