ITADN
yshrsmz/unorm-dart
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

unorm_dart

Unit Test

Unicode 17.0 规范化 - NFC、NFD、NFKC、NFKD

Dart2 版本的 unorm

函数

该模块导出了四个函数:nfcnfdnfkcnfkd;每个 Unicode 规范化类型对应一个函数。在浏览器中,这些函数被导出到 unorm 全局对象中。在 CommonJS 环境中,只需引入该模块即可。函数功能如下:

  • unorm.nfd(str) – 标准分解
  • unorm.nfc(str) – 先进行标准分解,再执行标准组合
  • unorm.nfkd(str) – 兼容性分解
  • unorm.nfkc(str) – 先进行兼容性分解,再执行标准组合

使用方式

一个简单的使用示例:

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]");

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

生成 Unicode 数据

手动生成

如需手动更新 Unicode 数据并生成规范化文件:

# Download latest Unicode data files
dart run tools/unicode_data_updater.dart

# Update lib/src/unormdata.dart
dart run tools/normalizer_gen.dart

功能与缺陷

请在 issue tracker] 上提交功能需求与缺陷报告。