Imports System.Text Public Class publicMode ''' ''' 将字符串转换为 Unicode 编码并交换字符位置 ''' ''' ''' Shared Function SwapAndPad(inputString As String) As String Dim sb As New StringBuilder() Dim length As Integer = inputString.Length ' 处理字符串长度为奇数的情况,在末尾添加一个"F" If length Mod 2 <> 0 Then inputString &= "F" length += 1 End If ' 每两个字符进行交换 For i As Integer = 0 To length - 1 Step 2 ' 交换位置:先放第二个字符,再放第一个字符 sb.Append(inputString(i + 1)) sb.Append(inputString(i)) Next Return sb.ToString() End Function ''' ''' 将字符串转换为 Unicode 编码 ''' ''' ''' Shared Function ConvertToUnicode(inputString As String) As String Dim sb As New StringBuilder() Dim maxint As Integer = 0 For Each c As Char In inputString If maxint < 62 Then sb.Append(String.Format("\u{0:X4}", CInt(AscW(c)))) End If ' 将每个字符转换为 \uXXXX 格式的 Unicode 码 maxint += 1 Next Return sb.ToString().Replace("\u", "").Trim End Function '字符串转byte数组 Public Shared Function StringToByte(ByVal str As String) As Byte() Return System.Text.Encoding.Default.GetBytes(str) End Function Public Shared Function StringToHexString(ByVal b As String) As String Dim sbuff = StringToByte(b) Return ByteToHex(sbuff) End Function 'byte数组转字符串 Public Shared Function ByteToString(ByVal b As Byte()) As String Return System.Text.Encoding.Default.GetString(b) End Function 'byte数组转十六进制字符串 Public Shared Function ByteToHex(ByVal b As Byte()) As String Dim s As String = "" For Each c As Byte In b s += c.ToString("X2") Next Return s End Function '字符串转十六进制字符串不足两位补0 Public Shared Function StringToHex(ByVal str As String) As String Dim s As String = "" For Each c As Char In str s += Convert.ToString(Asc(c), 16).PadLeft(2, "0") Next Return s End Function '字符串每两个字节转十六进制字符串 不足两位补0 Public Shared Function StringToHex2(ByVal str As String) As String Dim s As String = "" Dim nv As String = "" For i As Integer = 0 To str.Length - 1 Step 2 nv = str.Substring(i, 1) If nv.Length = 1 Then nv = "0" & nv End If s += nv Next Return s End Function Public Shared Function StringToHex3(ByVal str As String) As String Dim result As String = "" For Each c As Char In str Dim bytes As Byte() = System.Text.Encoding.Unicode.GetBytes(c) For Each b As Byte In bytes result += b.ToString("X2") Next Next Return result End Function '十六进制字符串转byte数组 Public Shared Function HexToByte(ByVal hex As String) As Byte() Dim b As Byte() = New Byte(hex.Length / 2 - 1) {} Try For i As Integer = 0 To hex.Length - 1 Step 2 b(i / 2) = Convert.ToByte(hex.Substring(i, 2), 16) Next Catch ex As Exception Return Nothing End Try Return b End Function '十六进制字符串转字符串 Public Shared Function ByteToHexString(databuff() As Byte) As String Dim strData As String = String.Empty For i = 0 To databuff.Length - 1 strData &= $" {Hex(databuff(i)).PadLeft(2, "0"c)}" Next Return strData End Function '十六进制字符串转字符串 Public Shared Function HexStringToByte(hexstr As String) As Byte() Dim result As Byte() = Nothing '判断字符串是否为空或 者为空字符串 If String.IsNullOrEmpty(hexstr) Then Return Nothing '替换字符中的分隔符号 hexstr = hexstr.Trim().Replace(" ", "").Replace("-", "").Replace(",", "").Replace(":", "").Replace(";", "").Replace(".", "") '判断字符串的长度是否为偶数 If hexstr.Length Mod 2 <> 0 Then '不为偶数往最后一个字节前面补0 hexstr = hexstr.Insert(hexstr.Length - 1, "0") End If '以2为步长,将字符串转换为字节数组 不足2位前面补0 Try result = Enumerable.Range(0, hexstr.Length).Where(Function(x) x Mod 2 = 0).Select(Function(x) Convert.ToByte(hexstr.Substring(x, 2), 16)).ToArray() Catch ex As Exception result = Nothing End Try Return result End Function 'Public Shared Function HexStringToByte(hexstr As String) As String ' '判断字符串是否为空或 者为空字符串 ' If String.IsNullOrEmpty(hexstr) Then Return Nothing ' '替换字符中的分隔符号 ' hexstr = hexstr.Trim().Replace(" ", "").Replace("-", "").Replace(",", "").Replace(":", "").Replace(";", "").Replace(".", "") ' '判断字符串的长度是否为偶数 ' If hexstr.Length Mod 2 <> 0 Then ' '不为偶数往最后一个字节前面补0 ' hexstr = hexstr.Insert(hexstr.Length - 1, "0") ' End If ' '以2为步长,将字符串转换为字节数组 不足2位前面补0 ' Return hexstr 'Enumerable.Range(0, hexstr.Length).Where(Function(x) x Mod 2 = 0).Select(Function(x) Convert.ToByte(hexstr.Substring(x, 2), 16)).ToArray() 'End Function ''' ''' Int转2个字节Byte ''' 高字节在前,低字节在后 ''' ''' ''' Public Shared Function IntToByteHB(ByVal i As Integer) As Byte() Dim btemp() As Byte = {0, 0} Dim b() As Byte = BitConverter.GetBytes(i) btemp(0) = b(0) btemp(1) = b(1) Return btemp End Function ''' ''' Int转2个字节Byte ''' 高字节在前,低字节在后 ''' ''' ''' Public Shared Function IntToByteLB(ByVal i As Integer) As Byte() Dim btemp() As Byte = {0, 0} Dim b() As Byte = BitConverter.GetBytes(i) btemp(0) = b(1) btemp(1) = b(0) Return btemp End Function End Class