in Sources/aliyun-log-c-sdk/log_sds.c [408:431]
log_sds log_sdscatrepr(log_sds s, const char *p, size_t len) {
s = log_sdscatlen(s,"\"",1);
while(len--) {
switch(*p) {
case '\\':
case '"':
s = log_sdscatprintf(s,"\\%c",*p);
break;
case '\n': s = log_sdscatlen(s,"\\n",2); break;
case '\r': s = log_sdscatlen(s,"\\r",2); break;
case '\t': s = log_sdscatlen(s,"\\t",2); break;
case '\a': s = log_sdscatlen(s,"\\a",2); break;
case '\b': s = log_sdscatlen(s,"\\b",2); break;
default:
if (isprint(*p))
s = log_sdscatprintf(s,"%c",*p);
else
s = log_sdscatprintf(s,"\\\\x%02x",(unsigned char)*p);
break;
}
p++;
}
return log_sdscatlen(s,"\"",1);
}