using System;
using System.IO;
using System.Collections;
using System.Text;
using System.Text.RegularExpressions;
using System.Xml.Serialization;
namespace FlickrNet
{
///
/// Internal class providing certain utility functions to other classes.
///
internal sealed class Utils
{
private Utils()
{
}
#if !WindowsCE
internal static string UrlEncode(string oldString)
{
if (oldString == null) return null;
string a = System.Web.HttpUtility.UrlEncode(oldString);
a = a.Replace("&", "%26");
a = a.Replace("=", "%3D");
a = a.Replace(" ", "%20");
return a;
}
#else
internal static string UrlEncode(string oldString)
{
if (oldString == null) return String.Empty;
StringBuilder sb = new StringBuilder(oldString.Length * 2);
Regex reg = new Regex("[a-zA-Z0-9$-_.+!*'(),]");
foreach (char c in oldString)
{
if (reg.IsMatch(c.ToString()))
{
sb.Append(c);
}
else
{
sb.Append(ToHex(c));
}
}
return sb.ToString();
}
private static string ToHex(char c)
{
return ((int)c).ToString("X");
}
#endif
}
}