2012-03-20 66 views
1

我們知道一個tolower函數會將所有A變成一個如何防止vb.net區分à到

如何將所有à變成a。

目的是爲數據庫創建id,id需要是唯一的。有時,同一家商店在一個地方寫作,在其他地方寫作。這會造成重複的id問題。

所以我需要一個函數將所有的à和它的所有變化變成a。 ě應該成爲e。

基本上我會在我的數據庫上使用utf8_unicode整理。按照該排序規則計算爲相同字母的字母應該映射到該函數下的相同字符。

我需要確保所有其他東亞人不會受到任何影響。

我該怎麼做?

+0

[如何從.NET中的字符串中刪除變音符號(重音符號)](http://stackoverflow.com/questions/249087/how-do-i-remove-diacritics-accents-from-網內一串) – 2012-03-20 07:53:21

回答

-1
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)); 
     } 
+0

哦,有沒有內置函數是不是? – 2012-03-20 09:04:16

+2

您至少應該引用您的來源... http://blogs.msdn.com/b/michkap/archive/2007/05/14/2629747.aspx或http://stackoverflow.com/questions/249087/how -DO-I-除去-附加符號-口音-從-A-字符串在網 – 2012-03-20 09:20:35