Пример #1
0
        private static IntPtr GetNormalizer(UNormalizationMode mode)
        {
            ErrorCode errorCode;
            var       ret = NativeMethods.unorm2_getInstance(IntPtr.Zero,
                                                             (mode == UNormalizationMode.UNORM_NFC || mode == UNormalizationMode.UNORM_NFD) ? "nfc" : "nfkc",
                                                             (mode == UNormalizationMode.UNORM_NFC || mode == UNormalizationMode.UNORM_NFKC) ?
                                                             UNormalization2Mode.UNORM2_COMPOSE : UNormalization2Mode.UNORM2_DECOMPOSE,
                                                             out errorCode);

            if (errorCode != ErrorCode.NoErrors)
            {
                throw new Exception("Normalizer.Normalize() failed with code " + errorCode);
            }
            return(ret);
        }