rendered paste body#include <QString>#include <stdio.h>#include <locale.h>void printUnicode(const QString &str){ for (int i = 0; i < str.length(); ++i) printf(" U+%04X", str.unicode()[i].unicode());}int main(int argc, char **argv){ setlocale(LC_ALL, ""); QString source = QString::fromLocal8Bit(argv[1]); QString composed = source.normalized(QString::NormalizationForm_C); QString decomposed = source.normalized(QString::NormalizationForm_D); printf("Source form:"); printUnicode(source); printf("\nComposed form:"); printUnicode(composed); printf("\nDecomposed form:"); printUnicode(decomposed); printf("\n categories:"); for (int i = 0; i < decomposed.length(); ++i) printf(" %6d", decomposed.unicode()[i].category()); printf("\n"); return 0;}$ /tmp/decomposition/decomposition abcáé€.Source form: U+0061 U+0062 U+0063 U+00E1 U+00E9 U+20AC U+002EComposed form: U+0061 U+0062 U+0063 U+00E1 U+00E9 U+20AC U+002EDecomposed form: U+0061 U+0062 U+0063 U+0061 U+0301 U+0065 U+0301 U+20AC U+002E categories: 16 16 16 16 1 16 1 28 26