unicodeNormalize static method
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();
}