[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
 
 
留言
張貼留言