numHex =Integer.Parse(strHex, Globalization.NumberStyles.AllowHexSpecifier)
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比茅箭網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式茅箭網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋茅箭地區(qū)。費(fèi)用合理售后完善,十年實(shí)體公司更值得信賴。
或
numHex = Integer. Parse("H" strHex)
本文介紹了各種編碼類型,然后討論了將字符串轉(zhuǎn)換成字節(jié)數(shù)組的方法。編碼類型用二進(jìn)制形式描述一個(gè)字符串變量有很多種方式。用來(lái)實(shí)現(xiàn)該功能的編碼對(duì)象依賴于你選擇的編碼。下面是程序開發(fā)人員經(jīng)常使用的編碼類型:ASCII:將字符串中的每個(gè)字符使用7個(gè)比特編碼。這種編碼類型不能包含擴(kuò)展的Uincode字符。Full Unicode(UTF-16):將字符串中的每個(gè)字符使用16個(gè)比特編碼。這種情況下對(duì)每個(gè)字符一個(gè)字節(jié)數(shù)組含有兩個(gè)字節(jié)。UTF-7:對(duì)于普通的ASCII字符使用7比特編碼,對(duì)于擴(kuò)展字符使用多個(gè)7比特對(duì)編碼。這種編碼類型最常用于7比特協(xié)議中如mail等。UTF-8:對(duì)于普通的ASCII字符使用8比特編碼,對(duì)于擴(kuò)展字符使用多個(gè)8比特對(duì)編碼。這種情況下對(duì)每個(gè)字符一個(gè)字節(jié)數(shù)組包含一個(gè)字節(jié)。
最近我說(shuō)明了用VB NET將字符串轉(zhuǎn)換成字節(jié)數(shù)組的方法 如果你需要將一個(gè)字節(jié)數(shù)組轉(zhuǎn)換成字符串 可以使用BitConverter ToString或Covert ToBase String方法 下面我提供實(shí)例說(shuō)明如何用上兩種方法進(jìn)行轉(zhuǎn)換
字節(jié)數(shù)組用法
如果你準(zhǔn)備恢復(fù)用二進(jìn)制格式保存的文本 在System Text命名空間中調(diào)用適當(dāng)編碼對(duì)象的GetString方法
使用System BitConverter類是將一個(gè)字節(jié)數(shù)組轉(zhuǎn)換成字符串的最快捷的方法 這個(gè)類為基本數(shù)據(jù)類型和字節(jié)數(shù)組之間的轉(zhuǎn)換提供方法 要使用這個(gè)方法 使用超載的ToString方法接受一個(gè)字節(jié)數(shù)組為參數(shù) 在這種情況下 字符串中包括字節(jié)數(shù)組的每一個(gè)十六進(jìn)制格式的值 數(shù)值間用破折號(hào)隔開 使用字符串沒有辦法自動(dòng)撤銷轉(zhuǎn)換 恢復(fù)原始的字節(jié)數(shù)組 查看列表A中的例子
Listing A
Private Sub ConvertByteArrayToString()??????? Dim btText() As Byte = { }??????? Dim strText As String??????? strText = BitConverter ToString(btText)??????? MessageBox Show(strText)??? End Sub???? 通過(guò)System Convert類的ToBase String和FromBase Stirng方法 利用Base 編碼 也可以把字節(jié)數(shù)組轉(zhuǎn)換成字符串 在Base 編碼中 每個(gè)三字節(jié)的序列被轉(zhuǎn)換為四個(gè)字節(jié) 每個(gè)Base 編碼字符為值域中 個(gè)可能值中的一個(gè) 查看列表B中的例子
Listing B
Private Sub ConvertByteArrayToString()??????? Dim btText() As Byte = { }??????? Dim strText As String??????? strText = Convert ToBase String(btText)??????? MessageBox Show(strText)??? End Sub???? 以上兩種方法都可以用來(lái)建立一個(gè)二進(jìn)制數(shù)據(jù)表示法 記住 為了將一個(gè)字節(jié)數(shù)組恢復(fù)成真實(shí)的文本信息 你必須使用正確的編碼類
lishixinzhi/Article/program/net/201311/11708
字符編碼轉(zhuǎn)換嗎?
1.字符與gb2312(gbk的子集):
Public Function GBKEncode(ByVal sInput As String) As String
Dim ret_GBKEncode As String = ""
Dim i As Integer
Dim startIndex As Integer = 0
Dim endIndex As Integer
Dim x() As Byte = System.Text.Encoding.Default.GetBytes(sInput) '字符以及字符串在vb2008中都是以u(píng)nicode編碼存儲(chǔ)的
endIndex = x.Length - 1
For i = startIndex To endIndex
ret_GBKEncode = "%" Hex(x(i))
Next
Return ret_GBKEncode
End Function
'GBK解碼
Public Function GBKDecode(ByVal sInput As String) As String
sInput = sInput.Replace("%", "")
Dim ret_GBKDecode As String = ""
Dim sLen As Integer = sInput.Length
Dim n As Integer = sLen \ 2
Dim sBytes(0 To n - 1) As Byte
'轉(zhuǎn)化為字節(jié)碼
For i As Integer = 1 To n
sBytes(i - 1) = CByte("H" sInput.Substring(2 * i - 2, 2))
Next
'將字節(jié)碼轉(zhuǎn)化為字符串
ret_GBKDecode = System.Text.Encoding.Default.GetString(sBytes)
Return ret_GBKDecode
End Function
2.Unicode字符串為UTF-8
Imports System.Text
Public Function StringAsUtf8Bytes(ByVal strData As String) As Byte()
Dim bytes() As Byte
bytes = Encoding.UTF8.GetBytes(strData)
Return bytes
End Function
'這里可以類推出好幾種。
使用類型轉(zhuǎn)換函數(shù)CSByt或CByte
如:CSByt(Integer)
Byte 數(shù)據(jù)類型擴(kuò)大 Short、 UShort、 Integer、 UInteger、 Long、 ULong、 Decimal、 Single 或 Double??梢詫?Byte 轉(zhuǎn)換為這些類型中的任何類型,而不會(huì)遇到 System .OverflowException 錯(cuò)誤
for一下,將bytes中的字節(jié)轉(zhuǎn)為short,for中就可以將要使用的short進(jìn)行處理了