StringTools Encode and Decode cannot get the correct value
Code
Function PadLeft(ByVal PadStr, ByVal PadChar, ByVal PadLen)
If Len(PadChar) Then PadChar = Left(CStr(PadChar), 1) Else PadChar = " "
PadLeft = Left(PadStr & String(PadLen, CStr(PadChar)), PadLen)
End Function
Function PadRight(ByVal PadStr, ByVal PadChar, ByVal PadLen)
If Len(PadChar) Then PadChar = Left(CStr(PadChar), 1) Else PadChar = " "
PadRight = Right(String(PadLen, CStr(PadChar)) & PadStr, PadLen)
End Function
Function IIf(ByVal Expression, ByVal TruePart, ByVal FalsePart)
If Expression Then IIf = TruePart Else IIf = FalsePart
End Function
Function HHex(ByVal Value)
If Len(Hex(Value)) Mod 2 Then HHex = "0" & Hex(Value) Else HHex = Hex(Value)
End Function
Sub OutputBlob(ByVal BlobValue, ByVal Interval) 'Interval = 1, 2, 4, 8, 16
Dim i, HexStr
If Interval = 1 Or Interval = 2 Or Interval = 4 Or Interval = 8 Or Interval = 16 Then Interval = Interval Else Interval = 1
for i = 0 to BlobValue.size - 1
HexStr = HexStr & IIf(i = 0, PadRight(Hex(i), 0, 8), IIf(i mod 16, "", vbCRLF & PadRight(Hex(i), 0, 8))) & IIf(i=0, " ", IIF(i mod Interval, "", " ")) & HHex(BlobValue(i))
next
Dopus.Output Trim(HexStr)
End Sub
const text = "test用必要的信息形成字符串。"
dim bo,st,arr
set st = dopus.create.stringtools
set bo = st.encode(text,"utf-8") 'unicodeFFFE, unicode, koi8-ru, koi8-r, big5, urf-7, utf-8, iso-8859-1 - iso-8859-9, euc-jp, euc-kr, gb2312
arr = bo.toarray
dopus.output String(60, "=")
OutputBlob bo, 1
dopus.output "String: " & st.decode(bo,"utf-8")
dopus.output String(60, "=")
set bo = st.encode(text,"unicodeFFFE")
OutputBlob bo, 1
dopus.output String(60, "=")
set bo = st.encode(text,"unicode")
OutputBlob bo, 1
dopus.output String(60, "=")
DOpus.FSUtil.OpenFile("E:\test\test.txt").Read bo ' test.txt Content = const text
OutputBlob bo, 1
dopus.output "String: " & st.decode(bo,"unicodeFFFE")
Return
============================================================
00000000 74 65 73 74 E7 94 A8 E5 BF 85 E8 A6 81 E7 9A 84
00000010 E4 BF A1 E6 81 AF E5 BD A2 E6 88 90 E5 AD 97 E7
00000020 AC A6 E4 B8 B2 E3 80 82 00
String: test用必要的信息形成字符串。
============================================================
00000000 00
============================================================
00000000 00
============================================================
00000000 FF FE 63 00 6F 00 6E 00 73 00 74 00 20 00 74 00
00000010 65 00 78 00 74 00 20 00 3D 00 20 00 22 00 74 00
00000020 65 00 73 00 74 00 28 75 C5 5F 81 89 84 76 E1 4F
00000030 6F 60 62 5F 10 62 57 5B 26 7B 32 4E 02 30 22 00
00000040 0D 00 0A 00
String: