社区
C#
帖子详情
Byte*怎么转换成string
linguanyu315
2009-09-16 04:18:42
需要把Byte*指针转换成string,Byte*是变长度的,最长1024Byte.
...全文
205
21
打赏
收藏
Byte*怎么转换成string
需要把Byte*指针转换成string,Byte*是变长度的,最长1024Byte.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
21 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
linguanyu315
2009-09-16
打赏
举报
回复
[Quote=引用 18 楼 soaringbird 的回复:]
如果你要为了观察而显示数据包的内容,可以这么转换,如果解包的话,还是按照我在12楼写的那样做
[/Quote]
我需要观察也需要解包. 你的方法,和你12楼写的都很有帮助,谢谢.
linguanyu315
2009-09-16
打赏
举报
回复
[Quote=引用 17 楼 soaringbird 的回复:]
那你先得用Marshal.Copy把数据复制到byte[],再用BitConverter.ToString()转换后去掉-了
[/Quote]
谢谢.这个方法可行.谢谢.
l274747948
2009-09-16
打赏
举报
回复
.tostring()
soaringbird
2009-09-16
打赏
举报
回复
如果你要为了观察而显示数据包的内容,可以这么转换,如果解包的话,还是按照我在12楼写的那样做
soaringbird
2009-09-16
打赏
举报
回复
那你先得用Marshal.Copy把数据复制到byte[],再用BitConverter.ToString()转换后去掉-了
linguanyu315
2009-09-16
打赏
举报
回复
[Quote=引用 13 楼 hack95 的回复:]
读取到数组中再ToString()
[/Quote]
用for语句,读去到数组中,再ToString()?这样是不是效率比较低?我有大量数据包要处理.
linguanyu315
2009-09-16
打赏
举报
回复
[Quote=引用 13 楼 hack95 的回复:]
读取到数组中再ToString()
[/Quote]
怎么读取到数组中?
linguanyu315
2009-09-16
打赏
举报
回复
[Quote=引用 12 楼 soaringbird 的回复:]
你要解码呀,解码不用转成字符串,直接解就是了,一个字节就是一个byte数据,四个字节就是一个int32数据。
还可以这样:*(b+1),下一个字节;*((int*)b+1),下一个整数,Marshal.PtrToStringAnsi((IntPtr)(b+10),20),从第十个字节取20个字节转换成字符串
[/Quote]
谢谢你热情回复.
我的意思是,比如BYTE* b = {00,12,13,ac}
我要在转化成string后,输出显示的还是00,12,13,ac
现在输出的都是ANSI字符了.
柳晛
2009-09-16
打赏
举报
回复
读取到数组中再ToString()
soaringbird
2009-09-16
打赏
举报
回复
你要解码呀,解码不用转成字符串,直接解就是了,一个字节就是一个byte数据,四个字节就是一个int32数据。
还可以这样:*(b+1),下一个字节;*((int*)b+1),下一个整数,Marshal.PtrToStringAnsi((IntPtr)(b+10),20),从第十个字节取20个字节转换成字符串
linguanyu315
2009-09-16
打赏
举报
回复
但是打印输出的时候,显示的不是16进制数,而是解码以后的字符了.但是我必须要16进制的数,要对这些数进行进一步的解码处理.
linguanyu315
2009-09-16
打赏
举报
回复
ANSI应该是对的.但是打印输出的时候,显示的不是16进制数,而是解码以后的数了.我必须还要对这个string要做解码处理的.
soaringbird
2009-09-16
打赏
举报
回复
主要是看什么编码的,ansi啦、unicode啦,你试试哪个转换后不是乱码就用哪个
linguanyu315
2009-09-16
打赏
举报
回复
Byte*里面是16进制数,应该用哪个?我还是只需要16进制数.string里面要是16进制数
soaringbird
2009-09-16
打赏
举报
回复
xxxx是可以指定一个长度。
PtrToStringXXX 指PtrToStringAnsi,PtrToStringAuto,PtrToStringBSTR 等等
soaringbird
2009-09-16
打赏
举报
回复
byte *b;
IntPtr p = (IntPtr)b;
Marshal.PtrToStringXXX(p,xxxx)
linguanyu315
2009-09-16
打赏
举报
回复
[Quote=引用 2 楼 libinguest 的回复:]
C# codeBitConverter.ToString
[/Quote]
这个只能转换Byte数组,不能转换Byte*指针,编译的时候通不过.
hanqingyu
2009-09-16
打赏
举报
回复
用Tostring()就好了
风之影子
2009-09-16
打赏
举报
回复
BitConverter.ToString
Dobzhansky
2009-09-16
打赏
举报
回复
前提是知道编码.
不然没法保证所有的都可以转换回来.
IMAP 协议的文字编码就很变态.
byte
[]
转换成
String
除非觉得必要,否则不要将它们互相转换,他们分别代表了不同的数据,专门服务于不同的目的,通常
String
代表文本字符串,
byte
数组针对二进制数据通过
String
类将
String
转换成
byte
[]或者
byte
[]
转换成
String
用
String
....
Java
byte
[] 和
String
互相转换
通过用例学习Java中的
byte
数组和
String
...通过
String
类将
String
转换成
byte
[]或者
byte
[]
转换成
String
用
String
.get
Byte
s()方法将字符串转换为
byte
数组,通过
String
构造函数将
byte
数组
转换成
String
注意:这种方式使用
将
Byte
数组转化为
String
FCL得很多方法的返回值都是包含字符的
Byte
数组而不是返回一个
String
,这样的方法包含在如下的类中: · System.Net.Sockets.Socket.Receive · System.Net.Sockets.Socket.ReceiveFrom · System.Net.Sockets.Socket...
通过
String
类将
String
转换成
byte
[]或者
byte
[]
转换成
String
用
String
.get
Byte
s()方法将字符串转换为
byte
数组,通过
String
构造函数将
byte
数组
转换成
String
注意:这种方式使用平台默认字符集 复制代码 package com.bill.example; public class
String
Byte
ArrayExamples { ...
Byte
数组
转换成
string
的方法积累
.net的加密算法,返回的都是
byte
[] 类型,在存贮起来让人非常头疼,最简单的方法就是把
byte
[]
转换成
string
来存贮,当然如果数据量大的话,另当别论。 所以我就把
byte
[]
转换成
string
的方法做一个简单的积累与分析。...
C#
110,538
社区成员
642,577
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章