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); }