字符編碼轉(zhuǎn)換嗎?
成都創(chuàng)新互聯(lián)主要從事成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)孟村,10余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792
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
'這里可以類推出好幾種。
要把字符串 "20170901" 轉(zhuǎn)換成字符串 "2017/0901"
可以直接插入一個(gè)斜杠,例如:
dim s as string="20170901"
s = Microsoft.VisualBasic.Left(s,4) "/" Mid(s,5)
MsgBox(s)
語句:clsSQL.subSetParameters(":WORK_DATE", m_clsDB.sFncDrRead(pdtrData, "FileDate"))
可以改為;
語句:clsSQL.subSetParameters(":WORK_DATE", Microsoft.VisualBasic.Left(m_clsDB.sFncDrRead(pdtrData, "FileDate",4) "/" Mid(m_clsDB.sFncDrRead(pdtrData, "FileDate",5)))
本文介紹了各種編碼類型,然后討論了將字符串轉(zhuǎn)換成字節(jié)數(shù)組的方法。編碼類型用二進(jìn)制形式描述一個(gè)字符串變量有很多種方式。用來實(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é)。
把字符串“12341168C5B7”轉(zhuǎn)換為16進(jìn)制數(shù)存為string型
用shuzi=Convert.ToInt32("12341168C5B7",16)
就ok了。
反之用 shuzi.ToString("X")就行了。
給分?。?!
12341168C5B7轉(zhuǎn)換成10進(jìn)制數(shù)就是20014839678391。。
而int32的最大值為2,147,483,647。。所以產(chǎn)生錯(cuò)誤。
所以要用int64,它的最大值為9,223,372,036,854,775,807。也就是16位十六進(jìn)制數(shù)0X7FFFFFFFFFFFFFFF。
難道還有比F靠后的數(shù)??????