Unicode-normaliserare
Samma synliga sträng kan lagras som olika bytesekvenser beroende på om en accent finns som en enda kodpunkt eller som en bokstav plus ett kombinerande tecken. Den här normaliseraren omvandlar text mellan de fyra Unicode-normaliseringsformerna (NFC, NFD, NFKC, NFKD) så att dina strängar jämförs rent i databaser, sökindex, avdupliceringsskript och regex-matchningar.
Så normaliserar du Unicode-text
-
1
Klistra in din indata
Lägg in strängen: accentbokstäver, CJK-text, ligaturer, allt som känns inkonsekvent.
-
2
Välj en form
Välj NFC (komponerad, den vanliga webbformen), NFD (dekomponerad), NFKC (kompatibilitetskomponerad) eller NFKD (kompatibilitetsdekomponerad).
-
3
Jämför antalen
Verktyget rapporterar antalet tecken (kodpunkter) och bytelängden före och efter, så att du ser om formen förkortade eller förlängde strängen.
-
4
Kopiera den normaliserade utdatan
Använd resultatet i din databas, API-nyttolast, slug-generator eller testfixtur.
De fyra formerna och när du använder var och en
Unicode-normalisering definieras av standardbilagan UAX #15. De fyra formerna skiljer sig längs två axlar: kanonisk kontra kompatibilitet, och komponerad kontra dekomponerad.
Referens sida vid sida
| Form | Komposition | Mappning | När du använder den |
|---|---|---|---|
| NFC | Komponerad | Endast kanonisk | Standard för webbinnehåll, databaser, filnamn |
| NFD | Dekomponerad | Endast kanonisk | Textbearbetning som tar bort accenter per tecken |
| NFKC | Komponerad | Inkluderar kompat. | Sökning, identifierare, spamfilter, visningsvikning |
| NFKD | Dekomponerad | Inkluderar kompat. | Aggressiv normalisering före borttagning av diakriter |
Kanoniska former bevarar betydelsen
Skriv é och växla mellan formerna. NFC rapporterar 1 tecken och 2 byte (den enda kodpunkten U+00E9), medan NFD rapporterar 2 tecken och 3 byte (ett vanligt e följt av en kombinerande akut accent, U+0301). De två ser identiska ut på skärmen men är olika bytesekvenser, och just den avvikelsen är vad normaliseringen åtgärdar. Kanoniska former omarrangerar bara byten, så é i någon av formerna betyder alltid bokstaven e med akut accent.
Vad “kompatibilitet” faktiskt ändrar
K-formerna (NFKC, NFKD) skriver även om tecken som ser besläktade ut men bär på annan formatering. Detta är förstörande: du kan inte få tillbaka originalet. Till exempel:
fi(U+FB01, latinsk liten ligatur fi) blirfi(två bokstäver)①(U+2460, inringad siffra ett) blir1㌀(U+3300, det fyrkantiga CJK-tecknet “apaato”) blirアパート- Fullbredds-
A(U+FF21) blirA
Det är kraftfullt för sökning och avduplicering men förstörande för typografi, så ta till K-formerna bara när visuell trohet inte spelar roll.
En praktisk regel
- Lagra användarinnehåll i NFC.
- Jämför identifierare i NFC så att
caféskrivet som en enda kodpunkt ochcaféskrivet some+ U+0301 matchar; gå upp till NFKC när du också vill attfiochfi, eller fullbredds-AochA, ska jämföras som lika, precis som identifierarreglerna i UAX #31 gör. - Skapa accentfria slugs genom att normalisera till NFD och ta bort blocket med kombinerande tecken U+0300 till U+036F.
Vanliga frågor
Oftast betyder det att din indata redan var i målformen. Klistra in text som blandar källor (ett Mac-filnamn, en kopierad PDF-snutt, en rad från en äldre databas) så är det mycket mer sannolikt att du ser antalet tecken och byte ändras.
För visnings-URL:er, NFC. För slugs där du vill ha ren ASCII, normalisera till NFD, ta bort de kombinerande tecknen med ett regex på U+0300 till U+036F, och gör sedan om till gemener. NFKD är ett alternativ när du även vill vika ligaturer och inringade siffror.
Kanoniska former (NFC, NFD) ändrar aldrig betydelsen, de omarrangerar bara byte. Kompatibilitetsformer (NFKC, NFKD) ändrar den däremot: ligaturer delas, fullbreddsbokstäver viks och upphöjda tecken plattas till. Använd dem bara när det är vad du vill.
Normaliseringen körs på vår server via PHP:s Normalizer-klass och resultatet kommer tillbaka i samma begäran; din text lagras inte. Vi loggar bara en anonym händelse som noterar vilken form som tillämpades, aldrig själva innehållet.
Relaterade verktyg
Kvadratsymbol kopiera och klistra in
Kopiera kvadratsymbolen ², plus upphöjda och nedsänkta siffror, vanliga bråk och kvadrat- och kubikenheter som m², cm² och km². Klicka för att kopiera.
Generator för upphöjd text
Omvandla siffror och bokstäver till upphöjda Unicode-tecken för exponenter (x²), fotnotsmarkörer (¹ ² ³), källhänvisningar och ordningstal.
Generator för inverterad text
Vänd texten upp och ner med Unicode-glyfer som ser ut som speglade bokstäver, för biografier, bildtexter och uppmärksamhetsväckande sociala inlägg.
Liten text-generator
Gör text till pyttesmå upphöjda och nedsänkta Unicode-bokstäver. Klistra in direkt i biografier, användarnamn och chattappar.
Instagram-typsnittsgenerator
Generera Unicode-"typsnitt" (fet, kursiv, skript, monospace, fraktur) som klistras direkt in i din Instagram-bio, namn, bildtexter och kommentarer.
Slumpmässig promptgenerator
Skapa slumpmässiga kreativa prompts för att skriva, rita eller dagboksskriva. Välj typ och antal och blanda för en ny uppsättning. Prompterna är på engelska.
Verktyget finns på andra språk
- 유니코드 정규화기 [KO]
- Unicode-normaliseerder [NL]
- ตัวปรับข้อความให้เป็นมาตรฐาน Unicode [TH]
- مُطبِّع Unicode [AR]
- Bộ chuẩn hóa Unicode [VI]
- Unicode-Normalisierer [DE]
- Normaliseur Unicode [FR]
- Penormal Unicode [ID]
- Normalizador Unicode [ES]
- Normalizator Unicode [PL]
- Unicode正規化ツール [JA]
- Normalizador Unicode [PT]
- Unicode Normalleştirici [TR]
- Unicode 规范化工具 [ZH]
- Unicode Normalizer [EN]
- Normalizzatore Unicode [IT]
- Нормализатор Unicode [RU]