Unicode 8.0 Normalization - NFC, NFD, NFKC, NFKD
Dart2 port of unorm
This module exports four functions: nfc
, nfd
, nfkc
, and nfkd
; one for each Unicode normalization. In the browser the functions are exported in the unorm
global. In CommonJS environments you just require the module. Functions:
unorm.nfd(str)
– Canonical Decompositionunorm.nfc(str)
– Canonical Decomposition, followed by Canonical Compositionunorm.nfkd(str)
– Compatibility Decompositionunorm.nfkc(str)
– Compatibility Decomposition, followed by Canonical Composition
A simple usage example:
import "package:unorm_dart/unorm_dart.dart" as unorm;
void main() {
var text = "The \u212B symbol invented by A. J. \u00C5ngstr\u00F6m " +
"(1814, L\u00F6gd\u00F6, \u2013 1874) denotes the length " +
"10\u207B\u00B9\u2070 m.";
var combining = RegExp(r"[\u0300-\u036F]/g");
print("Regular: ${text}");
print("NFC: ${unorm.nfc(text)}");
print("NFKC: ${unorm.nfkc(text)}");
print("NFKD: * ${unorm.nfkd(text).replaceAll(combining, "")}");
print(" * = Combining characters removed from decomposed form.");
}
see yshrsmz/unorm-dart-data-generator.
Please file feature requests and bugs at the issue tracker.