How to remove diacritics (accents) from a string?

后端 未结 3 993
鱼传尺愫
鱼传尺愫 2021-01-06 04:49

I\'m trying to convert some strings that are in Czech, Spanish, French etc. I\'d like to take out the accent marks in the letters while keeping the letter. (E.g. convert é t

3条回答
  •  不知归路
    2021-01-06 04:56

    Another simple solution that worked for me:

    String removeDiacritics(String str) {
    
      var withDia = 'ÀÁÂÃÄÅàáâãäåÒÓÔÕÕÖØòóôõöøÈÉÊËèéêëðÇçÐÌÍÎÏìíîïÙÚÛÜùúûüÑñŠšŸÿýŽž';
      var withoutDia = 'AAAAAAaaaaaaOOOOOOOooooooEEEEeeeeeCcDIIIIiiiiUUUUuuuuNnSsYyyZz'; 
    
      for (int i = 0; i < withDia.length; i++) {      
        str = str.replaceAll(withDia[i], withoutDia[i]);
      }
    
    return str;
    

    }

提交回复
热议问题