有这样一个需要,想要把从文件读取得内容全部转换成URL编码标识,写了下面几行代码,问题是可见字符可以正常转换,比如当buf[0]的值要是一个负数时,比如buf[0]的值是-112,这时转换就会出现问题,x就不是两位16进制数据了,可能是很多位,帮忙解决一下这个问题
for (int i=0;i<len;i++)
{
    char x[4]={0};
    sprintf(x,"%%%02x",buf[i]);
}