mirror of
https://github.com/cookiengineer/audacity
synced 2025-04-30 07:39:42 +02:00
45 lines
971 B
C++
45 lines
971 B
C++
/*!********************************************************************
|
|
|
|
Audacity: A Digital Audio Editor
|
|
|
|
@file UrlEncode.cpp
|
|
@brief Define a function to perfom URL encoding of a string.
|
|
|
|
Dmitry Vedenko
|
|
**********************************************************************/
|
|
|
|
#include "UrlEncode.h"
|
|
|
|
namespace audacity
|
|
{
|
|
|
|
std::string UrlEncode (const std::string& url)
|
|
{
|
|
std::string escaped;
|
|
|
|
for (char c : url)
|
|
{
|
|
if (('0' <= c && c <= '9') ||
|
|
('A' <= c && c <= 'Z') ||
|
|
('a' <= c && c <= 'z') ||
|
|
(c == '~' || c == '-' || c == '_' || c == '.')
|
|
)
|
|
{
|
|
escaped.push_back (c);
|
|
}
|
|
else
|
|
{
|
|
static const char symbolLookup[] = "0123456789ABCDEF";
|
|
|
|
escaped.push_back ('%');
|
|
|
|
escaped.push_back (symbolLookup[(c & 0xF0) >> 4]);
|
|
escaped.push_back (symbolLookup[(c & 0x0F) >> 0]);
|
|
}
|
|
}
|
|
|
|
return escaped;
|
|
}
|
|
|
|
}
|