unicodeNormalize static method

String unicodeNormalize(
  1. String text
)

Normalizes text using Unicode normalization (NFD + diacritic removal)

Implementation

static String unicodeNormalize(String text) {
  if (text.isEmpty) return text;

  // Convert to NFD (Normalized Decomposed Form) to separate base characters from diacritics
  final normalized = const Utf8Decoder().convert(
    const Utf8Encoder().convert(text).map((byte) => byte).toList(),
  );

  // Remove diacritics and normalize
  return removeDiacritics(normalized)
      .toLowerCase()
      .trim()
      .replaceAll(RegExp(r'\s+'), ' ')
      .replaceAll(RegExp(r'[^\w\s\-\.]'), '')
      .replaceAll(RegExp(r'\s+'), ' ')
      .trim();
}