All pastes #739803 Raw Edit

Miscellany

public cpp v1 · immutable
·published 2007-10-17 14:19 UTC
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