분류, 패키지 및 저장소 검색

패키지 상세v0.3.3

unorm_dart

Unicode 17.0 정규화 - NFC, NFD, NFKC, NFKD. 이는 [walling/unorm](https://github.com/walling/unorm) 의 Dart 버전입니다.

AndroidiOSWebmacOSWindowsLinux
30일 다운로드
47.6만
좋아요
31
Pub 점수
150

패키지 설치

flutter pub add unorm_dart

패키지 개요

공개 정보를 바탕으로 생성한 선택 가이드입니다.

unorm_dart는 Unicode 17.0 정규화 알고리즘의 Dart 구현으로, NFC, NFD, NFKC 및 NFKD 형식을 지원합니다. Unicode 문자열을 표준 표현으로 정규화함으로써 일관된 텍스트 처리를 가능하게 하며, 정확한 비교, 검색 및 저장에 필수적입니다. 원래의 walling/unorm 라이브러리 기반으로 Android, iOS, Web, macOS, Windows, Linux에서의 크로스플랫폼 호환성을 보장합니다. 음절 부호, 결합 마크, 특수 기호를 견고하게 다뤄야 하는 국제화 애플리케이션에 적합합니다.

사용 사례

  • 다국어 앱에서 텍스트 비교
  • 정규화된 문자열 검색 및 인덱싱
  • 음성 기호를 포함한 사용자 입력 처리
  • 로케일 간 데이터 중복 제거
  • API용 유니코드 입력 표준화

주요 기능

  • 모든 4개의 유니코드 정규화 형식을 지원합니다
  • 크로스 플랫폼 호환성
  • 가볍고 빠름
  • 정확한 유니코드 17.0 호환성
  • 간단하고 직관적인 API

적합한 대상

  • 국제화된 플러터 앱
  • 텍스트 처리 도구
  • 음성 무시 매칭을 사용한 사용자 인증
  • 데이터베이스 정규화 워크플로
  • 로컬라이제이션 라이브러리

고려 사항

  • 패키지 크기가 약간 증가할 수 있습니다
  • 노드 코딩에서 에지 케이스를 신중하게 다뤄야 합니다
  • 비-유니코드 텍스트에는 적합하지 않습니다
  • 매우 큰 텍스트 배치에 대한 성능 영향
  • 정규화에 국한됨—기타 유니코드 작업 없음

원본 README

연결된 소스 저장소의 README 원문 스냅샷입니다. 최신 내용은 저장소에서 확인하세요.

unorm_dart

Unit Test

Unicode 17.0 Normalization - NFC, NFD, NFKC, NFKD

Dart2 port of unorm

Functions

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 Decomposition
  • unorm.nfc(str) – Canonical Decomposition, followed by Canonical Composition
  • unorm.nfkd(str) – Compatibility Decomposition
  • unorm.nfkc(str) – Compatibility Decomposition, followed by Canonical Composition

Usage

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

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

Generating Unicode data

Manual Generation

To manually update the Unicode data and generate normalization files:

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

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

Features and bugs

Please file feature requests and bugs at the issue tracker.

카테고리

소스 저장소

이 패키지를 사용하는 프로젝트

순위