java gsoap_gsoap c与java web之间传输字符串中文乱码问题 | 学步园

中文乱码,也就是编码问题不一致,我们也不深究用什么soap_set_mode用SOAP_C_MBSTRING还是SOAP_C_UTFSTRING 只需要我们对字符进行转码成一个统一规范就可以正常显示了,比如c端把字符串转码成十六进制字符

代码如下:

char* asc2hex(char *in)

{

char *ret;

int i,len;

if(in==NULL)return NULL;

len=strlen(in);

ret=(char*)malloc(len*2+1);

for(i=0;i

sprintf(ret+i+i,"%02X",*((unsigned char*)in+i));

return ret;

}

而java客户端就可以写一个解码函数如:

// 转化十六进制编码为字符串

public static String toStringHex(String hexStr)

{

byte[] baKeyword = new byte[hexStr.length()/2];

for(int i = 0; i < baKeyword.length; i++)

{

baKeyword[i] = (byte)(0xff & Integer.parseInt(hrexSt.substring(i*2, i*2+2),16));

}

try

{

String str = new String(baKeyword, "gb2312");//linux操作系统设置字符集

}

catch (Exception e1)

{

e1.printStackTrace();

}

return str;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值