非ASCII字符的ASCII表示很好?

时间:2013-04-13 22:35:23

标签: url ascii username non-ascii-characters

全名 - >用户名转换,我需要一个映射UTF-8 - > ASCII。

例如: MichaelMärz==> Michael Maerz ==> michael.maerz

以及汉字的罗马化

是否有可以提供此功能的库或其他内容?

1 个答案:

答案 0 :(得分:1)

ä转换为ae只是其中一个ascii表示形式。请参阅http://en.wikipedia.org/wiki/%C3%84

我认为更通用的方法是(假设您可以使用c#)

string Unaccent(string s)
{
    return String.Join("", s.Normalize(NormalizationForm.FormD)
                            .Where(c => char.GetUnicodeCategory(c) != UnicodeCategory.NonSpacingMark)
                        ).Normalize(NormalizationForm.FormC);
}

Michael März => Michael Marz