removeDiacritics method

String removeDiacritics()

Strip common diacritics to ASCII equivalents (best effort).

Implementation

String removeDiacritics() {
  // Minimal map; extend as you need.
  const from =
      'ÀÁÂÃÄÅĀĂĄàáâãäåāăąÇĆĈĊČçćĉċčÐĎĐðďđÈÉÊËĒĔĖĘĚèéêëēĕėęěĞġģĞİıÌÍÎÏĪĬĮİìíîïīĭįijÑŃŇŅñńňņÒÓÔÕÖØŌŎŐòóôõöøōŏőŔŘŖŕřŗŚŜŞŠśŝşšŤŢŦťţŧÙÚÛÜŪŬŮŰŲùúûüūŭůűųÝŸýÿŹŻŽźżž';
  const to =
      'AAAAAAAAaaaaaaaaCCCCCcccccDDĐdddEEEEEEEEEeeeeeeeeeGggGIIIIIIIIiiiiiiijNNNnnnOOOOOOOoooooooRRRrrrSSSSssssTTTtttUUUUUUUUuuuuuuuuYYyyZZZzzz';
  final map = <int, String>{};
  for (var i = 0; i < from.length && i < to.length; i++) {
    map[from.codeUnitAt(i)] = to[i];
  }
  final sb = StringBuffer();
  for (final r in runes) {
    sb.write(map[r] ?? String.fromCharCode(r));
  }
  return sb.toString();
}