有关字符串处理问题(续)

meteorlg 2003-08-30 12:47:58
我调用dll返回的字符串到StringBuilder中,其中1-10位表示卡号,11-20位表示姓名,21-30位表示身份证号码。。。
然后用
byte[] b = System.Text.Encoding.GetEncoding("GB2312").GetBytes(YourStringBuilder.ToString());
string name = System.Text.Encoding.GetEncoding("GB2312").GetString(b,10,10);
得到其中的各个字段。
但是现在有一个问题,就是返回的字符串中间有字符串结束符‘\0’,这样stringbuilder.tostring()出来就会把后面的字符都截掉了,如何才能让它不截掉?
好像dll中char *pbuf的参数不能用byte[]来传,用stringbuilder又会出现这个问题,该怎么解决?
...全文
25 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
meteorlg 2003-09-05
  • 打赏
  • 举报
回复
我直接用byte[]做参数解决的,不过还是谢谢你们
ArLi2003 2003-08-31
  • 打赏
  • 举报
回复
试试先 split((char)0x00) 再做tostring
meteorlg 2003-08-31
  • 打赏
  • 举报
回复
并没有解决阿,还是只能读出\0前面的
还有没有其他的办法呢?char *的参数是不是只能用StringBuilder回传呢?
saucer 2003-08-30
  • 打赏
  • 举报
回复
try (not sure if it works)

char[] clist = new char[StringBuilder1.Length];
for (int i=0; i < clist.Length; i++)
clist[i] = StringBuilder1[i];

byte[] blist = System.Text.Encoding.Default.GetBytes(clist);

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧