C# – String Anglicization

.netc++internationalizationnormalization

Is anyone aware of any simple way to anglicize a string? Currently, in our system, we're doing replacements on "invalid" characters, such as shown below:

        ret = ret.Replace("ä", "ae");
        ret = ret.Replace("Ä", "Ae");
        ret = ret.Replace("ß", "ss");
        ret = ret.Replace("ç", "c");
        ret = ret.Replace("Ç", "C");
        ret = ret.Replace("Ž", "Z");

The issue here is that as we're opening the business up in additional countries (Turkey, Russia, Hungary…), we're finding that there's a whole slew of characters that this process does not convert.

Is anyone aware of any sort of solution that would allow us to not depend on a table of "invalid" characters?

Also, if it helps, we're using C# to code. 🙂

Thanks!


edit:

In response to some comments, our system does support the full set of unicode characters… however, other system that we integrate to (such as card processors) do not. 🙁

Best Solution

Check out this question and its answers and take a look at this blog entry on converting diacritical characters to their ASCII equivalents.