hur.cn - 华软网

 热门搜索

关于字符的问题

  作者:未知    来源:网络    更新时间:2018/8/6
用十六进制方式查看为 AA 的一个字节二进制数据,怎么把它转换成字符串 AA?
内容为中文的二进制数据,我用String函数转过之后,怎么是乱码

------华软网友回答------
string(blob lblb_data)
------华软网友回复------
asc()

然后将结果转化为16进制字符串



// 函数名:uf_pub_hex *
// *
// 功  能:16进制转换函数 *
// 参  数:arg_lg_number 需转换的十进制数 *
//        返  回:st_hex 十六进制 *
// Author:Wenli.Yang *
//**************************************************************************
long lg_hex,lg_mod

string st_hex,st_return

IF arg_lg_number = 0 THEN RETURN '00'
lg_hex = arg_lg_number

lg_mod = mod(lg_hex,16)
lg_hex = lg_hex/16

DO WHILE lg_hex>0 OR lg_mod>0

CHOOSE CASE lg_mod

CASE 15
st_hex = 'F'
CASE 14
st_hex = 'E'
CASE 13
st_hex = 'D'
CASE 12
st_hex = 'C'
CASE 11
st_hex = 'B'
CASE 10
st_hex = 'A'
CASE ELSE
st_hex = string(lg_mod)
END CHOOSE

st_return = st_hex + st_return

lg_mod = mod(lg_hex,16)
lg_hex = lg_hex/16

LOOP

IF len(st_return) =1 THEN st_return = '0' + st_return

RETURN st_return
------华软网友回复------
1楼的我看不懂你是什么意思。
2楼的,asc()的参数好像要是字符串的,我用String直接转好像只有小于9的才能正确转成字符串,而像AA等全都为0。


for i=int_a to int_b                   // int_a和int_b为待转的二进制数据的起点和终点
   blob_fun_temp=blobmid(blob_c,i,1);      //blob_c为二进制数据源
   s = String(blob_fun_temp, EncodingANSI!);  //转成字符串
   int_num = AscA(Mida(s,1, 1));               //取得该值下面用你给的程序,提示无法
                                              //处理该字符串,请确认是8字符串
······················


------华软网友回复------
我刚才又重新试了一下,2楼的函数没有问题。但是我的这几句语句:
 
blob_fun_temp=blobmid(blob_c,1,1);      //blob_c为二进制数据源
   s = String(blob_fun_temp, EncodingANSI!);  //转成字符串
   int_num = AscA(Mida(s,1, 1)); 
在读一个内容为 AA 的二进制数据时,int_num值为10,应该是170啊。高手帮我看看问题出在哪      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。