Function?GetHex(ByVal?Str1?As?String,?IsANSI?As?Boolean)?As?String
Dim?b1()?As?Byte If?IsANSI?Then?b1?=?StrConv(Str1,?vbFromUnicode)?Else?b1?=?Str1 Dim?s1?As?Long,?n1?As?Long,?l1?As?Long l1?=?LBound(b1) n1?=?UBound(b1)?-?l1?+?1 GetHex?=?Space(n1?*?2) For?s1?=?1?To?n1Mid(GetHex,?s1?+?s1?-?1,?2)?=?Replace(Format(Hex(b1(s1?+?l1?-?1)),?"@@"),?"?",?"0")
NextEnd?Function
使用:
Debug.Print "ANSI碼:";GetHex("我們",True)
Debug.Print "Unicode碼:";GetHex("我們",False)
顯示結果:
ANSI碼:CED2C3C7
Unicode碼:1162EC4E
上面的是正確結果。妳給的“ANSI是 89E43F,unicode是 11623F00”是錯的,妳隨便找壹個16進制編輯器驗證下吧。兩個漢字的ANSI碼怎麽也都是4字節的不可能是3字節的,Unicode漢字中也不會有“00”