是否有“.net方式”可以将字符转换为: úüãá?açéêíõóôáéíñóú¿¿ 对于类似的非重音字母。将角色转换为友好的url的方法?
eg.ú到u
我的问题就像是一个预文本: Handling SEO Friendly URL with Non-English Characters
如果不是这样,我想我可以永远是对的一个发现&替换功能。
是否有“.net方式”可以将字符转换为: úüãá?açéêíõóôáéíñóú¿¿ 对于类似的非重音字母。将角色转换为友好的url的方法?
eg.ú到u
我的问题就像是一个预文本: Handling SEO Friendly URL with Non-English Characters
如果不是这样,我想我可以永远是对的一个发现&替换功能。
See this post from Michael Kaplan
static string RemoveDiacritics(string stIn) {
string stFormD = stIn.Normalize(NormalizationForm.FormD);
StringBuilder sb = new StringBuilder();
for(int ich = 0; ich < stFormD.Length; ich++) {
UnicodeCategory uc = CharUnicodeInfo.GetUnicodeCategory(stFormD[ich]);
if(uc != UnicodeCategory.NonSpacingMark) {
sb.Append(stFormD[ich]);
}
}
return(sb.ToString().Normalize(NormalizationForm.FormC));
}
这里是从以前的/类似的问题
public static IEnumerable<char> RemoveDiacriticsEnum(string src, bool compatNorm, Func<char, char> customFolding)
{
foreach(char c in src.Normalize(compatNorm ? NormalizationForm.FormKD : NormalizationForm.FormD))
switch(CharUnicodeInfo.GetUnicodeCategory(c))
{
case UnicodeCategory.NonSpacingMark:
case UnicodeCategory.SpacingCombiningMark:
case UnicodeCategory.EnclosingMark:
//do nothing
break;
default:
yield return customFolding(c);
break;
}
}
public static IEnumerable<char> RemoveDiacriticsEnum(string src, bool compatNorm)
{
return RemoveDiacritics(src, compatNorm, c => c);
}
public static string RemoveDiacritics(string src, bool compatNorm, Func<char, char> customFolding)
{
StringBuilder sb = new StringBuilder();
foreach(char c in RemoveDiacriticsEnum(src, compatNorm, customFolding))
sb.Append(c);
return sb.ToString();
}
public static string RemoveDiacritics(string src, bool compatNorm)
{
return RemoveDiacritics(src, compatNorm, c => c);
}
在这里,我们已经为上述问题的情况下,这只是忽略它们默认的另一个例子。我们还分割了一个字符串来生成字符的枚举,所以我们不必浪费在没有必要对结果进行字符串操作的情况下(比如说我们要写下字符来输出下一个字符,或者再做一些字符由字符操作)。
一个例子情况下的东西,我们希望也转换L和L以L和L,但没有其他专门的担忧可以使用:
private static char NormaliseLWithStroke(char c)
{
switch(c)
{
case 'l':
return 'l';
case 'L':
return 'L';
default:
return c;
}
}
你确定这些字符不是搜索引擎友好? – ivowiblo 2012-01-18 21:04:45
可能的重复[如何从.NET中的字符串中删除变音符(重音符号)?](http://stackoverflow.com/questions/249087/how-do-i-remove-diacritics-accents-from-a-字符串中网) – 2012-01-18 21:10:06