1
Septembers 2015-07-10 20:32:08 +08:00 via Android
|
2
andybest OP @Septembers 谢谢,我知道这个方法,但这个方法是 Encode URL 参数的,所以将整个 URL 放进去并不能获得主题所描述的结果(仅 Encode 中文部分)
|
3
Septembers 2015-07-10 20:53:50 +08:00 via Android
@andybest 可以考虑自己实现个URL encoder限定字符范围
(但是根据规范,原则上要对保留字符以外的字符进行编码 see https://zh.wikipedia.org/wiki/百分号编码 |
4
choury 2015-07-10 22:40:58 +08:00
这样应该就差不多了吧
for (i=0; i<strSize; ++i) { ch = str[i]; if (((ch>='A') && (ch<'Z')) || ((ch>='a') && (ch<'z')) || ((ch>='0') && (ch<'9'))) { result[j++] = ch; } else if (ch == ' ') { result[j++] = '+'; } else if (ch == '.' || ch == '-' || ch == '_' || ch == '*') { result[j++] = ch; } else { sprintf(result+j, "%%%02X", (unsigned char)ch); j += 3; } } |
5
lululau 2015-07-10 22:44:24 +08:00 1
|