重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
字符编码转换吗?
成都创新互联主要从事成都网站制作、网站设计、网页设计、企业做网站、公司建网站等业务。立足成都服务孟村,10余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务: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中都是以unicode编码存储的
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
'转化为字节码
For i As Integer = 1 To n
sBytes(i - 1) = CByte("H" sInput.Substring(2 * i - 2, 2))
Next
'将字节码转化为字符串
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" 转换成字符串 "2017/0901"
可以直接插入一个斜杠,例如:
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)))
本文介绍了各种编码类型,然后讨论了将字符串转换成字节数组的方法。编码类型用二进制形式描述一个字符串变量有很多种方式。用来实现该功能的编码对象依赖于你选择的编码。下面是程序开发人员经常使用的编码类型:ASCII:将字符串中的每个字符使用7个比特编码。这种编码类型不能包含扩展的Uincode字符。Full Unicode(UTF-16):将字符串中的每个字符使用16个比特编码。这种情况下对每个字符一个字节数组含有两个字节。UTF-7:对于普通的ASCII字符使用7比特编码,对于扩展字符使用多个7比特对编码。这种编码类型最常用于7比特协议中如mail等。UTF-8:对于普通的ASCII字符使用8比特编码,对于扩展字符使用多个8比特对编码。这种情况下对每个字符一个字节数组包含一个字节。
把字符串“12341168C5B7”转换为16进制数存为string型
用shuzi=Convert.ToInt32("12341168C5B7",16)
就ok了。
反之用 shuzi.ToString("X")就行了。
给分!!!
12341168C5B7转换成10进制数就是20014839678391。。
而int32的最大值为2,147,483,647。。所以产生错误。
所以要用int64,它的最大值为9,223,372,036,854,775,807。也就是16位十六进制数0X7FFFFFFFFFFFFFFF。
难道还有比F靠后的数??????