Какво е Unicode нормализация?

Unicode дефинира множество начини за представяне на един и същи видим символ. Например символът "é" може да бъде съхранен като един предкомпозиран код (U+00E9) или като буквата "e" последвана от комбиниращ остър акцент (U+0065 U+0301). И двата варианта се визуализират идентично, но се различават по байтове, което причинява проблеми при сравнение на низове, търсене и обработка на текст.

Unicode нормализацията е процесът на преобразуване на текста в канонично представяне, така че еквивалентните низове да станат идентични. Unicode стандартът дефинира четири форми на нормализация:

  • NFC (Канонично разложение, последвано от канонична композиция): Предкомпозирана форма; най-компактна, широко използвана в интернет и в повечето операционни системи.
  • NFD (Канонично разложение): Напълно разложена форма; всеки символ е разбит на базова буква плюс комбиниращи знаци.
  • NFKC (Разложение на съвместимост, последвано от канонична композиция): Като NFC, но също така свива символи на съвместимост (например лигатури, надстрочни знаци, пълноширинни варианти) в техните канонични еквиваленти.
  • NFKD (Разложение на съвместимост): Като NFD, но също така прилага разложение на съвместимост.

Описание на инструмента

Този инструмент нормализира Unicode текст от една форма на нормализация към друга. Изберете изходната и целевата форма, поставете вашия текст и преобразуваният резултат се появява незабавно.

Функции

  • Всичките четири форми на нормализация: Поддържа NFC, NFD, NFKC и NFKD както като източник, така и като цел.
  • Двупосочно преобразуване: Превключвайте между всяка комбинация от форми свободно.
  • Резултат в реално време: Текстът се нормализира незабавно докато пишете или поставяте.
  • Работи с всеки Unicode скрипт: Работи с латински, CJK, арабски, кирилски и всеки друг Unicode кодиран текст.

Как работи

Инструментът прилага стандартния JavaScript метод String.prototype.normalize() с избраната целева форма. Това е напълно съответстваща на спецификацията реализация на Unicode нормализация, както е дефинирана в Unicode Standard Annex #15.

Случаи на употреба

  • Коригиране на сравнение на низове: Нормализирайте текста преди сравнение или индексиране, за да гарантирате, че визуално идентични низове съвпадат правилно.
  • Търсене и последователност на базата данни: Стандартизирайте въвода на потребителя в една форма (обикновено NFC) преди съхранение в база данни, за да предотвратите дублирани записи, които се различават само по кодиране.
  • Свиване на съвместимост: Използвайте NFKC, за да свиете лигатури, надстрочни знаци и пълноширинни символи в техните стандартни еквиваленти за индексиране на търсене или обработка на естествен език.