Byte数组与String转换问题

凡爸 2011-02-21 09:41:02
有没有哪位高人知道如何将Byte数组转成String,及String转成Byte数组,请赐教
...全文
396 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
凡爸 2011-02-24
  • 打赏
  • 举报
回复
其实我要实现的是用PB读取图片,然后将内容写到XML文件中与Java交互,PB读图片得到的是Blob类型,而XML存的是字符,所以才会产生上述要求。不过现在已经解决了,采用的是XML自身的Base64编码方式。谢谢各位
凡爸 2011-02-22
  • 打赏
  • 举报
回复
For...Next循环太慢了,几十万上百万的数组,循环就象死了一样。另外我是要Byte数组转换成一个字串,字串转换成Byte数组,Java及C中都有相应的函数,PB中却没找到,郁闷。
glint 2011-02-22
  • 打赏
  • 举报
回复
toString啊,Byte数组存的ASCII码吗?string(blob(byte[]))
做梦的猫 2011-02-22
  • 打赏
  • 举报
回复
string ls_buf
byte lbya_data[] = {178, 226, 202, 212}

ls_buf = String(Blob(lbya_data), EncodingANSI!)
messagebox('Ansi byte[] 转 string', ls_buf)


string ls_data = "测试"
byte lbya_buf[]

lbya_buf = GetByteArray(Blob(ls_data))
messagebox('string 转 Unicode byte[]', string(blob(lbya_buf)))


/*
// 按单字节字符集提取字符串的 ascii 码
string ls_data = "测试", ls_buf
blob{2} lbl_word
blob lbl_data

lbl_data = Blob(ls_data, EncodingANSI!)
SetByte(lbl_word, 1, Byte(BlobMid(lbl_data, 1, 1)))
ls_buf += String(Asc(String(lbl_word))) + ","
SetByte(lbl_word, 1, Byte(BlobMid(lbl_data, 2, 1)))
ls_buf += String(Asc(String(lbl_word))) + ","
SetByte(lbl_word, 1, Byte(BlobMid(lbl_data, 3, 1)))
ls_buf += String(Asc(String(lbl_word))) + ","
SetByte(lbl_word, 1, Byte(BlobMid(lbl_data, 4, 1)))
ls_buf += String(Asc(String(lbl_word)))

messagebox('“测试”的 Ansi 码', ls_buf)
*/
xiaoyehua 2011-02-21
  • 打赏
  • 举报
回复
我的了解:byte是范围为0~255的整数,如果转换成string。那么就直接string(xx)就可以了。
至于数组的转换的思路,通过upperbound获取数组的上限,
然后用for..next循环赋值成string,或者byte。

740

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 脚本语言
社区管理员
  • 脚本语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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