提示: 代码编程语言是c++
- 本人前段时间在公司弄一个点播转码的程序,主要是从存储服务器中下载影片进行转码,然后上传。
- 下载和上传过程中,由于url中有一些特殊字符导致失败,所以需要对url进行encode才能正常上传和下载。
- 代码如下:
std::string encimpl(std::string::value_type v)
{
if(isalnum(v))
{
return std::string() + v;
}
std::ostringstream enc;
enc << '%' << std::setw(2) << std::setfill('0') << std::hex << std::uppercase << int(static_cast<unsigned char>(v));
return enc.str();
}
std::string urlencode(const std::string& url)
{
std::string str;
std::transform(url.begin(), url.end(), boost::make_function_output_iterator(boost::bind(static_cast<std::string& (std::string::*)(const std::string&)>(&std::string::append), &str, _1)), encimpl);
return qstr;
}