怎么把一个字符串转成Byte数组
Public Sub StringToByteArray(ByVal strSrc As String, ByVal ByteArray() As Byte)
Dim i As Long
Dim iCharCnt As Integer
Dim bChar As Byte
Dim iIndex As Integer
iIndex = 0
strSrc = StrConv(strSrc, vbFromUnicode)
iCharCnt = LenB(strSrc)
For i = 0 To iCharCnt - 1
bChar = Asc(Mid(strSrc, i + 1, 1))
If bChar <> 0 Then
ByteArray(iIndex) = bChar
iIndex = iIndex + 1
End If '
Next i
ByteArray(iIndex) = 0
End Sub
上面的是VB版本的,谁可以帮我写下.net呀
好几个函数在.NET里都没有
问题点数:30、回复次数:11Top
1 楼fp2002(石头)回复于 2006-03-20 16:16:57 得分 0
你说的是哪几个函数没有啊?这里只有LenB函数没有之外,其他的都有!LenB在。NET中是用Len来代替!Top
2 楼xxuu503(中国没有prison break只是因为the company不让拍)回复于 2006-03-20 16:20:47 得分 10
public function Bytes(byval strSrc as string)
dim a as arraylist
dim c as char
for each c in strsrc.tochararray
a.add(Convert.tobyte(c))
end for
return a.toarray
end function
Top
3 楼xxuu503(中国没有prison break只是因为the company不让拍)回复于 2006-03-20 16:21:30 得分 0
lenb和strconv这几个函数都不需要了吧
.net里边string是unicode字符的阿Top
4 楼copico(北北)回复于 2006-03-20 16:42:20 得分 0
Public Declare Function FindExeAssoc Lib "Resctrl.dll" (ByVal pszFile As String, ByVal pszExeAssoc As String) As Long
Dim str1 As String * 512
Dim n As Long
n = FindExeAssoc(Filename, str1)
这是VB的,n的返回值是0,正常
可在.NET里一样用,只是Dim str1 As String这样定义,结果就返回不是0了,很奇怪
Top
5 楼copico(北北)回复于 2006-03-20 17:14:54 得分 0
xxuu503(我爱郭芙蓉!)
用你的方法会得到一个错误,对于无符号的字节或太大或太小
a.add(Convert.tobyte(c))Top
6 楼copico(北北)回复于 2006-03-20 18:03:48 得分 0
顶上去Top
7 楼kjq_vb(跟着MS走)回复于 2006-03-20 18:45:14 得分 0
vb6里的long是.net的integerTop
8 楼CsMLdn(老鼠有米)回复于 2006-03-20 20:28:17 得分 5
Public Sub StringToByteArray(ByVal strSrc As String, ByVal ByteArray() As Byte)
Dim i As Long
Dim iCharCnt As Integer
Dim bChar As Byte
Dim iIndex As Integer
iIndex = 0
strSrc = StrConv(strSrc, VbStrConv.Uppercase)'vbFromUnicode改为VbStrConv.Uppercase
iCharCnt = CByte(strSrc)'LenB改为CByte
For i = 0 To iCharCnt - 1
bChar = Asc(Mid(strSrc, i + 1, 1))
If bChar <> 0 Then
ByteArray(iIndex) = bChar
iIndex = iIndex + 1
End If '
Next i
ByteArray(iIndex) = 0
End SubTop
9 楼lzmtw(水如烟)回复于 2006-03-20 20:51:01 得分 15
Dim tmp As String = "中国China"
Dim bytes() As Byte = System.Text.Encoding.Default.GetBytes(tmp)
For Each b As Byte In bytes
Console.WriteLine(b.ToString)
NextTop
10 楼lzmtw(水如烟)回复于 2006-03-20 21:18:16 得分 0
看仔细些就是:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim tmp As String = "中国China"
Console.WriteLine(tmp)
For Each ei As System.Text.EncodingInfo In System.Text.Encoding.GetEncodings
Console.WriteLine("DisplayName:{0},CodePage:{1},Name:{2}", ei.DisplayName, ei.CodePage, ei.Name)
Console.WriteLine(BytesToString(StringToBytes(tmp, System.Text.Encoding.Default), ei.GetEncoding))
If System.Text.Encoding.Default.Equals(ei.GetEncoding) Then
Console.WriteLine("Default Is {0} !!!!!!!!!!!!!!!!!!", ei.Name)
End If
Next
End Sub
Private Function StringToBytes(ByVal s As String, ByVal encoding As System.Text.Encoding) As Byte()
Return encoding.GetBytes(s)
End Function
Private Function BytesToString(ByVal bytes As Byte(), ByVal encoding As System.Text.Encoding) As String
Return encoding.GetString(bytes)
End FunctionTop
11 楼lzmtw(水如烟)回复于 2006-03-20 21:19:23 得分 0
结果:一大堆
中国China
DisplayName:IBM EBCDIC (US-Canada),CodePage:37,Name:IBM037
O}?3???>/
DisplayName:OEM United States,CodePage:437,Name:IBM437
╓╨╣·China
DisplayName:IBM EBCDIC (International),CodePage:500,Name:IBM500
O}?3???>/
DisplayName:Arabic (ASMO 708),CodePage:708,Name:ASMO-708
??╥┘China
DisplayName:Arabic (DOS),CodePage:720,Name:DOS-720
╓╨╣·China
DisplayName:Greek (DOS),CodePage:737,Name:ibm737
╓╨╣·China
DisplayName:Baltic (DOS),CodePage:775,Name:ibm775
??╣·China
DisplayName:Western European (DOS),CodePage:850,Name:ibm850
íe╣·China
DisplayName:Central European (DOS),CodePage:852,Name:ibm852
í?╣˙China
DisplayName:OEM Cyrillic,CodePage:855,Name:IBM855
ол╣ЩChina
DisplayName:Turkish (DOS),CodePage:857,Name:ibm857
ío╣·China
DisplayName:OEM Multilingual Latin I,CodePage:858,Name:IBM00858
íe╣·China
DisplayName:Portuguese (DOS),CodePage:860,Name:IBM860
╓╨╣·China
DisplayName:Icelandic (DOS),CodePage:861,Name:ibm861
╓╨╣·China
DisplayName:Hebrew (DOS),CodePage:862,Name:DOS-862
╓╨╣·China
DisplayName:French Canadian (DOS),CodePage:863,Name:IBM863
╓╨╣·China
DisplayName:Arabic (864),CodePage:864,Name:IBM864
????China
DisplayName:Nordic (DOS),CodePage:865,Name:IBM865
╓╨╣·China
DisplayName:Cyrillic (DOS),CodePage:866,Name:cp866
╓╨╣·China
DisplayName:Greek, Modern (DOS),CodePage:869,Name:ibm869
αΤ╣ωChina
DisplayName:IBM EBCDIC (Multilingual Latin-2),CodePage:870,Name:IBM870
O}?????>/
DisplayName:Thai (Windows),CodePage:874,Name:windows-874
????China
DisplayName:IBM EBCDIC (Greek Modern),CodePage:875,Name:cp875
O}?3Γ??>/
DisplayName:Japanese (Shift-JIS),CodePage:932,Name:shift_jis
???ⅳhina
DisplayName:Chinese Simplified (GB2312),CodePage:936,Name:gb2312
中国China
Default Is gb2312 !!!!!!!!!!!!!!!!!!
DisplayName:Korean,CodePage:949,Name:ks_c_5601-1987
櫓?China
DisplayName:Chinese Traditional (Big5),CodePage:950,Name:big5
笢弊China
DisplayName:IBM EBCDIC (Turkish Latin-5),CodePage:1026,Name:IBM1026
O??3?[?>/
DisplayName:IBM Latin-1,CodePage:1047,Name:IBM01047
O}?3???>/
DisplayName:IBM EBCDIC (US-Canada-Euro),CodePage:1140,Name:IBM01140
O}?3???>/
DisplayName:IBM EBCDIC (Germany-Euro),CodePage:1141,Name:IBM01141
Oü?3{??>/
DisplayName:IBM EBCDIC (Denmark-Norway-Euro),CodePage:1142,Name:IBM01142
O??3???>/
DisplayName:IBM EBCDIC (Finland-Sweden-Euro),CodePage:1143,Name:IBM01143
O??3{??>/
DisplayName:IBM EBCDIC (Italy-Euro),CodePage:1144,Name:IBM01144
Oè?3???>/
DisplayName:IBM EBCDIC (Spain-Euro),CodePage:1145,Name:IBM01145
O}?3??#>/
DisplayName:IBM EBCDIC (UK-Euro),CodePage:1146,Name:IBM01146
O}?3???>/
DisplayName:IBM EBCDIC (France-Euro),CodePage:1147,Name:IBM01147
Oè?3???>/
DisplayName:IBM EBCDIC (International-Euro),CodePage:1148,Name:IBM01148
O}?3???>/
DisplayName:IBM EBCDIC (Icelandic-Euro),CodePage:1149,Name:IBM01149
O??3???>/
DisplayName:Unicode,CodePage:1200,Name:utf-16
??桃湩
DisplayName:Unicode (Big-Endian),CodePage:1201,Name:unicodeFFFE
???楮
DisplayName:Central European (Windows),CodePage:1250,Name:windows-1250
???úChina
DisplayName:Cyrillic (Windows),CodePage:1251,Name:windows-1251
ЦР№ъChina
DisplayName:Western European (Windows),CodePage:1252,Name:Windows-1252
?D1úChina
DisplayName:Greek (Windows),CodePage:1253,Name:windows-1253
ΦΠ??China
DisplayName:Turkish (Windows),CodePage:1254,Name:windows-1254
??1úChina
DisplayName:Hebrew (Windows),CodePage:1255,Name:windows-1255
??1?China
DisplayName:Arabic (Windows),CodePage:1256,Name:windows-1256
??1?China
DisplayName:Baltic (Windows),CodePage:1257,Name:windows-1257
??1?China
DisplayName:Vietnamese (Windows),CodePage:1258,Name:windows-1258
??1úChina
DisplayName:Korean (Johab),CodePage:1361,Name:Johab
???China
DisplayName:Western European (Mac),CodePage:10000,Name:macintosh
÷–π˙China
DisplayName:Japanese (Mac),CodePage:10001,Name:x-mac-japanese
???ⅳhina
DisplayName:Chinese Traditional (Mac),CodePage:10002,Name:x-mac-chinesetrad
笢弊China
DisplayName:Korean (Mac),CodePage:10003,Name:x-mac-korean
櫓?China
DisplayName:Arabic (Mac),CodePage:10004,Name:x-mac-arabic
????China
DisplayName:Hebrew (Mac),CodePage:10005,Name:x-mac-hebrew
?–??China
DisplayName:Greek (Mac),CodePage:10006,Name:x-mac-greek
÷–ΙζChina
DisplayName:Cyrillic (Mac),CodePage:10007,Name:x-mac-cyrillic
÷–?ъChina
DisplayName:Chinese Simplified (Mac),CodePage:10008,Name:x-mac-chinesesimp
中国China
DisplayName:Romanian (Mac),CodePage:10010,Name:x-mac-romanian
÷–π˙China
DisplayName:Ukrainian (Mac),CodePage:10017,Name:x-mac-ukrainian
÷–?ъChina
DisplayName:Thai (Mac),CodePage:10021,Name:x-mac-thai
????China
DisplayName:Central European (Mac),CodePage:10029,Name:x-mac-ce
÷–??China
DisplayName:Icelandic (Mac),CodePage:10079,Name:x-mac-icelandic
÷–π˙China
DisplayName:Turkish (Mac),CodePage:10081,Name:x-mac-turkish
÷–π˙China
DisplayName:Croatian (Mac),CodePage:10082,Name:x-mac-croatian
÷???China
DisplayName:Unicode (UTF-32),CodePage:12000,Name:utf-32
DisplayName:Unicode (UTF-32 Big-Endian),CodePage:12001,Name:utf-32BE
DisplayName:Chinese Traditional (CNS),CodePage:20000,Name:x-Chinese-CNS
烘?China
DisplayName:TCA Taiwan,CodePage:20001,Name:x-cp20001
髐崠China
DisplayName:Chinese Traditional (Eten),CodePage:20002,Name:x-Chinese-Eten
???錈hina
DisplayName:IBM5550 Taiwan,CodePage:20003,Name:x-cp20003
戥China
DisplayName:TeleText Taiwan,CodePage:20004,Name:x-cp20004
羨擊China
DisplayName:Wang Taiwan,CodePage:20005,Name:x-cp20005
鏻惤China
DisplayName:Western European (IA5),CodePage:20105,Name:x-IA5
????China
DisplayName:German (IA5),CodePage:20106,Name:x-IA5-German
????China
DisplayName:Swedish (IA5),CodePage:20107,Name:x-IA5-Swedish
????China
DisplayName:Norwegian (IA5),CodePage:20108,Name:x-IA5-Norwegian
????China
DisplayName:US-ASCII,CodePage:20127,Name:us-ascii
????China
DisplayName:T.61,CodePage:20261,Name:x-cp20261
????China
DisplayName:ISO-6937,CodePage:20269,Name:x-cp20269
?―’?China
DisplayName:IBM EBCDIC (Germany),CodePage:20273,Name:IBM273
Oü?3{??>/
DisplayName:IBM EBCDIC (Denmark-Norway),CodePage:20277,Name:IBM277
O??3???>/
以下省....Top




