Skip to content

Instantly share code, notes, and snippets.

@robertosljunior
Created November 28, 2016 11:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save robertosljunior/bc67551fe51e9a41e0b036ae48c304d2 to your computer and use it in GitHub Desktop.
Save robertosljunior/bc67551fe51e9a41e0b036ae48c304d2 to your computer and use it in GitHub Desktop.
Make URL Safe
private static char Hex(int ix)
{
if (ix < 10)
{
return (char)(ix + 48);
}
return (char)(ix - 10 + 65);
}
private static string MakeURLSafe(string s)
{
string text = string.Empty;
for (int i = 0; i < s.Length; i++)
{
char c = s[i];
if ((c >= '0' && c <= '9') || (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') || c == '.')
{
text += c.ToString();
}
else if (c >= '\0' && c < 'Ā')
{
text += "%";
text += Hex((int)(c / '\u0010')).ToString();
text += Hex((int)(c % '\u0010')).ToString();
}
else
{
text += "%";
text += "u";
text += Hex((int)(c / 'က')).ToString();
text += Hex((int)(c / 'Ā' % '\u0010')).ToString();
text += Hex((int)(c / '\u0010' % '\u0010')).ToString();
text += Hex((int)(c % '\u0010')).ToString();
}
}
return text;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment