當前位置:編程學習大全網 - 網站源碼 - 求VB將中文字符轉換成相應的16進制編碼的源代碼

求VB將中文字符轉換成相應的16進制編碼的源代碼

這個函數,可以用來生成任意字符的16進制碼,Unicode和ANSI都支持:

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?n1

Mid(GetHex,?s1?+?s1?-?1,?2)?=?Replace(Format(Hex(b1(s1?+?l1?-?1)),?"@@"),?"?",?"0")

Next

End?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”

  • 上一篇:VBA中引用API函數提示“提示子過程或函數未定義”,是否需要勾選工具->引用當中某個選項?或有其他方法?
  • 下一篇:這臺電腦能玩什麽?
  • copyright 2024編程學習大全網