[VB.Net]Ascii、十六進制互轉函式
Ascii與十六進制互轉函式
參考網址:http://www.dotblogs.com.tw/larrynung/archive/2010/01/06/12874.aspx
ASCII要轉Hex,可透過ToString函式帶入"X2",或是用Hex函式。因此ASCII String轉Hex String可寫成:
註1:ASCII編碼部分要注意,這一段的程式使用的編碼方式僅能解00H~7FH,也就是十進位的0~127。在通訊傳輸的部分會造成溢位問題。
而Hex要轉ASCII,可在前面帶入"&h"字串,轉成int後再轉為char。因此Hex String轉ASCII String可寫成:
參考網址:http://www.dotblogs.com.tw/larrynung/archive/2010/01/06/12874.aspx
ASCII要轉Hex,可透過ToString函式帶入"X2",或是用Hex函式。因此ASCII String轉Hex String可寫成:
Public Function AsciiStringToHexString(ByVal asciiString As String) As String Dim ascii() As Byte = System.Text.Encoding.Default.GetBytes(asciiString) '註1 Dim count As Integer = ascii.Length Dim hexArray(count - 1) As String For idx As Integer = 0 To count - 1 hexArray(idx) = ascii(idx).ToString("x2") Next Return String.Join(" ", hexArray) End Function
註1:ASCII編碼部分要注意,這一段的程式使用的編碼方式僅能解00H~7FH,也就是十進位的0~127。在通訊傳輸的部分會造成溢位問題。
而Hex要轉ASCII,可在前面帶入"&h"字串,轉成int後再轉為char。因此Hex String轉ASCII String可寫成:
Public Function HexStringToAsciiString(ByVal hexString As String) As String Dim array() As String = hexString.Split(New Char() {" "c}, StringSplitOptions.RemoveEmptyEntries) For idx As Integer = 0 To array.Length - 1 array(idx) = Chr(CInt(String.Format("&h{0}", array(idx)))) Next Return String.Join(String.Empty, array) End Function
留言
張貼留言