>>329
std::string url_encode(const char* str)
{
 std::ostringstream ss;
 unsigned char c;
 while (c = *str++) {
 if (('A' <= c && c <= 'Z') ||
   ('a' <= c && c <= 'z') ||
   ('0' <= c && c <= '9') ||
   c == '*' || c == '-' || c == '.' || c == '@' || c == '_')
  {
   ss << c;
  } else if (c == ' ') {
   ss << '+';
  } else {
   ss << '%' << std::hex << (int)c;
  }
 }
 return ss.str();
}
強引だけど…。文字コード考慮に入れないと駄目かね