Reports object keys that are not normalized using Unicode normalization forms.
✅ This rule is included in the json logical and logicalStrict presets.
Unicode characters can sometimes have multiple representations that look identical but are technically different character sequences.
For example, the character “é” can be represented as a single code point (U+00E9) or as an “e” followed by a combining accent (U+0065 + U+0301).
This can lead to confusion, comparison issues, and unexpected behavior when working with JSON data.
Using normalized Unicode ensures consistent representation of text, which is important for key comparison, sorting, and searching operations.
When keys are properly normalized, operations like key lookups and equality checks will work as expected across different systems and platforms.
5<3{d ivclassNa="meec-li">nt< sp ansty="le--0:#7FDBCA;--1:#096E">72"ca sp>82\u03<01sp ansty="le--0:#7FDBCA;--1:#096E">701sp><2"sp ansty="le--0:#D6DEEB;--1:#403F">532"sp><: sp ansty="le--0:#D9F5DD;--1:#1111">1<1"sp ansty="le--0:#C789D6;--1:#7C56">86val1"sp>13{d><1"d ivclassNa="meec-li">51"d><3}d ivclassNa="meco"><}d>}d>3}d>5<3{d ivclassNa="meec-li">nt< sp ansty="le--0:#7FDBCA;--1:#096E">72"caf sp><è"s panst="yle--0:#D6DEEB;--1:#403">F5è"s><3: s panst="yle--0:#D9F5DD;--1:#111">13: s><11"s panst="yle--0:#C789D6;--1:#7C5">686espre11"s>1<11"s panst="yle--0:#D6DEEB;--1:#403">F11"s>3{d><53, divclassN="ameec-l">enE72"c982\u0<300s panst="yle--0:#7FDBCA;--1:#096">E300s><72"s panst="yle--0:#D6DEEB;--1:#403">F572"s><3: s panst="yle--0:#D9F5DD;--1:#111">13: s><11"s panst="yle--0:#C789D6;--1:#7C5">686la11"s>153,><11" divclassN="ameec-l">F11"><53} divclassN="amec">53}> <}divstarlight-tab- itemdataL="abel✅ C">4<03F 53{divcla="ssNamee">in096E72<"caf é"sp="anstyle--0:#D6DEEB;--1:">#4"caf><03F5 3: sp="anstyle--0:#D9F5DD;--1:">#03F5><1111 11"sp="anstyle--0:#C789D6;--1:">#7C561111><86va luesp="anstyle--0:#D9F5DD;--1:">#86va>03F><111 111"divcl="assName">#111><403 F53}divcl="assN">403><-contentfi gcaptionc="lassNa">-contentfi>:<#40 3F53{divc="lassNam">me:#096E72<"ré sumé=""spanstyle--0:#D6DEEB;-">-1"ré><:#40 3F53:=" spanstyle--0:#D9F5DD;-">-<1:#1 11111=""spanstyle--0:#C789D6;-">-1:#7C561:#1><86do cumen="tspanstyle--0:#D9F5DD;-">-86do><1:#1 11111=""spanstyle--0:#D6DEEB;-">-1:#1>#40><1:# 403F53,di="vclassN">Na-1:#096--<1:#4 03F53=": spanstyle--0:#D9F5DD;">-1:#4><-1:# 11111="1"spanstyle--0:#C789D6;">--1:#7C5-1:#><686a pproa="chspanstyle--0:#D9F5DD;">-686a><-1:# 11111="1"spanstyle--0:#D6DEEB;">--1:#>1:#><-1: #403F53,d="ivclass">sN--1:#096;-<-1:# 403F5="3: spanstyle--0:#D9F5DD">;-1:#><--1: #1111="11"spanstyle--0:#C789D6">;--1:--1:><#7C5 686pa="rtyspanstyle--0:#D9F5DD">;#7C5>-1:><--1 :#111111"="divclas">;--1><--1 :#403F53}="divc"><ñat>ñat>--1>DncDBCA;--1<:#09 6E72"="simple"spanstyle--0:#D6">DEF<5DD; --1:#="111111"spanstyle--0:#C7">89D6;5DD;><--1: #7C56="86valuespanstyle--0:#D9">F--1:><5DD; --1:#="111111"spanstyle--0:#D6">D5DD;>ncDBCA;--1:#096E72"nDE6A83<;-- 1:#A24848="truediv">D;-->}divstarlight-tab->
Type: "NFC" | "NFD" | "NFKC" | "NFKD"
Default: "NFC"
Unicode normalization form to use when checking keys.
Each normalization form has specific characteristics:
- NFC: Canonical Decomposition followed by Canonical Composition (default)
- NFD: Canonical Decomposition
- NFKC: Compatibility Decomposition followed by Canonical Composition
- NFKD: Compatibility Decomposition
5<3{d ivclassNa="meec-li">nt< sp ansty="le--0:#7FDBCA;--1:#096E">72"caf sp><é"s panst="yle--0:#D6DEEB;--1:#403">F5é"s><3: s panst="yle--0:#D9F5DD;--1:#111">13: s><11"s panst="yle--0:#C789D6;--1:#7C5">686va11"s>13{d><11" divclassN="ameec-l">F11"><53} divclassN="amec">53}>
<}divstarlight-tab- itemdataL="abel✅ C">4<03F 53{divcla="ssNamee">in096E7<2"ca fespa="nstyle--0:#F78C6C;--1:#">AA09822"ca><\u03 01spa="nstyle--0:#7FDBCA;--1:#">0\u03><96E7 2"spa="nstyle--0:#D6DEEB;--1:#">4096E7><3F53 : spa="nstyle--0:#D9F5DD;--1:#">13F53><1111 1"spa="nstyle--0:#C789D6;--1:#">7C5681111><6val uespa="nstyle--0:#D9F5DD;--1:#">16val>03F><111 11"divcla="ssNamee">4111><03F 53}divcla="ssNa">03F>}divstarlight-tab->
If your project intentionally uses a mix of JSON normalization forms, such as systems that manually manipulate strings, this rule might not reflect your project’s needs.
Consider refactoring to use safer string representations.