如何将一个文件的所有内容全部转换成url编码?

jhacker7 2006-12-23 09:49:44
怎么能把文件中的内容转换成url编码保存在另一个文件中? 请各位帮帮
...全文
224 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
caocheng8230 2006-12-23
  • 打赏
  • 举报
回复
楼主的意思是不是想把这个文件转换成html格式?

这恐怕你得自己去控制文件读写去写这些html的标签了.
gangjh 2006-12-23
  • 打赏
  • 举报
回复
不明白你想要做什麼
jixingzhong 2006-12-23
  • 打赏
  • 举报
回复
把gbk汉字的两个字节对应的两个数字用16进制表示,然后前面加一个%,如汉字“媒”对应的两个字节就分别是c3,bd
给你编码解码函数:
/// URL encoding
string URLEncode(const string& input)
{
string text;
for(unsigned int i=0;i<input.length();i++)
{
if(input[i] == 0x20)
{
text += "+";
continue;
}

if(input[i]*0x80)
{
int c1 = (unsigned char)input[i];
text += "%" + DecimalToHexstr(c1);
i++;
int c2 = (unsigned char)input[i];
text += "%" + DecimalToHexstr(c2);
continue;
}

if(ispunct(input[i]))
{
text += "%";
text += input[i];
continue;
}

text += input[i];
}

return text;
}

/// URL decoding
string URLDecode(const string& input)
{
// decoding
string text;
for(unsigned int i=0;i<input.length();)
{
if(input[i]=='+')
{
text += " ";
i++;
continue;
}

if(input[i]!='%') //if inserted some ASCII characters
{
text += input[i];
i++;
continue;
}

/* convert hex to decimal, then to ASCII char.*/
string sHex = "";
sHex += input[i+1];
sHex += input[i+2];
sHex = "0x" + sHex;
text += (char)strtol(sHex.c_str(),NULL,16);

i +=3;
}

return text;
}

64,680

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧