PowerToys/Wox.Infrastructure/Unidecoder.cs

38 lines
849 B
C#
Raw Normal View History

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Wox.Infrastructure
{
public static partial class Unidecoder
{
public static string Unidecode(this string self)
{
if (string.IsNullOrEmpty(self))
return "";
if (self.All(x => x < 128))
return self;
return String.Join("", self.Select(c => c.Unidecode()).ToArray());
}
public static string Unidecode(this char c)
{
string result;
if (c < 128)
return char.ToString(c);
int high = c >> 8;
int low = c & 0xff;
string[] t;
if (characters.TryGetValue(high, out t))
return t[low];
return string.Empty;
}
}
}