Foxtable(狐表)用户栏目专家坐堂 → 怎么截取字节串


  共有3849人关注过本帖树形打印复制链接

主题:怎么截取字节串

帅哥哟,离线,有人找我吗?
lweiji
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:24 积分:309 威望:0 精华:0 注册:2013/11/27 15:21:00
怎么截取字节串  发帖心情 Post By:2014/7/17 9:57:00 [显示全部帖子]

把字符串:“你好”转化为字节串,

Dim txt=e.Form.Controls("textbox1").text

 Dim zj() As Byte = System.Text.Encoding.Default.GetBytes(txt)

 

怎么根据字节串zj,截取“好”?


 回到顶部
帅哥哟,离线,有人找我吗?
lweiji
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:24 积分:309 威望:0 精华:0 注册:2013/11/27 15:21:00
  发帖心情 Post By:2014/7/17 10:04:00 [显示全部帖子]

字节串为zj()=“你好”,怎么把“好” 截取出来。字符串的方法是substring(),那么字节串该怎么截取?

 回到顶部
帅哥哟,离线,有人找我吗?
lweiji
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:24 积分:309 威望:0 精华:0 注册:2013/11/27 15:21:00
  发帖心情 Post By:2014/7/17 10:09:00 [显示全部帖子]

以下是引用有点甜在2014-7-17 10:05:00的发言:

 

转成字符啊

转成字符不行啊,一个中文字是一个字符两个字节,不好计算的。我要解析报文,报文是根据字节数组的,必须按字节串截取啊


 回到顶部
帅哥哟,离线,有人找我吗?
lweiji
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:24 积分:309 威望:0 精华:0 注册:2013/11/27 15:21:00
  发帖心情 Post By:2014/7/17 10:10:00 [显示全部帖子]

以下是引用有点甜在2014-7-17 10:02:00的发言:
Dim txt As String = "你好"
Dim zj() As Byte = System.Text.Encoding.Default.GetBytes(txt)
Dim nc As String = System.Text.Encoding.Default.GetString(zj)
msgbox(nc)

我是要根据字节串 zj()  来截取“好”


 回到顶部
帅哥哟,离线,有人找我吗?
lweiji
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:24 积分:309 威望:0 精华:0 注册:2013/11/27 15:21:00
  发帖心情 Post By:2014/7/17 10:29:00 [显示全部帖子]

以下是引用有点甜在2014-7-17 10:17:00的发言:

 

转成字符串,截取;

 

或者,字符串截取完,转成字节。

报文是根据字节数组的,不能转成字符串,截取


 回到顶部
帅哥哟,离线,有人找我吗?
lweiji
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:24 积分:309 威望:0 精华:0 注册:2013/11/27 15:21:00
  发帖心情 Post By:2014/7/17 10:46:00 [显示全部帖子]

以下是引用有点甜在2014-7-17 10:35:00的发言:

 

Dim txt As String = "你好"
Dim zj() As Byte = System.Text.Encoding.Default.GetBytes(txt)
Dim zjtemp() As Byte = {zj(2), zj(3)}
Dim nc As String = System.Text.Encoding.Default.GetString(zjtemp)
msgbox(nc)

 

不理解你的意思,字符和字节的转换,看这里,怎么用,是你自己的问题。

 

Dim zj() As Byte = System.Text.Encoding.Default.GetBytes(txt)


Dim nc As String = System.Text.Encoding.Default.GetString(zj)

打个比方,有很长字符串,现在要解析字符串,从第100个字节开始取4个字节(不是字符)。那就不能根据字符串截取了,因为一个中文字符等于两个字节


 回到顶部
帅哥哟,离线,有人找我吗?
lweiji
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:24 积分:309 威望:0 精华:0 注册:2013/11/27 15:21:00
  发帖心情 Post By:2014/7/17 10:56:00 [显示全部帖子]

以下是引用有点甜在2014-7-17 10:48:00的发言:

截取两个字节,好字

 

Dim zjtemp() As Byte = {zj(2), zj(3)}

就是这个。3Q哥们


 回到顶部
帅哥哟,离线,有人找我吗?
lweiji
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:24 积分:309 威望:0 精华:0 注册:2013/11/27 15:21:00
  发帖心情 Post By:2014/7/17 11:03:00 [显示全部帖子]

以下是引用有点甜在2014-7-17 10:48:00的发言:

截取两个字节,好字

 

Dim zjtemp() As Byte = {zj(2), zj(3)}

如果要取20个字节该怎么写呢?

Dim zjtemp() As Byte = ??


 回到顶部
帅哥哟,离线,有人找我吗?
lweiji
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:24 积分:309 威望:0 精华:0 注册:2013/11/27 15:21:00
  发帖心情 Post By:2014/7/17 11:36:00 [显示全部帖子]

以下是引用有点甜在2014-7-17 11:09:00的发言:

比如,从第15个位置开始截取。

 

Dim zjtemp(19) As Byte
For i As Integer = 0 To zjtemp.length
    zjtemp(i) = zj(i+15)
Next

For i As Integer = 0 To zjtemp.length-1  
要减1. 

3Q


 回到顶部