normalize の NFKC と NFKD の違いをざっくり解説
「ざ」という文字は二つの見方があります。
ざ
さ + ゙
濁点や半濁点を分解しないか、するか。これが NFKC と NFKD のざっくりとした違いです。
NFKC 分解しない
NFKD 分解する
const c = 'ざ'.normalize('NFKC')
const d = 'ざ'.normalize('NFKD')
console.log(c)
// ざ
console.log(d)
// ざ
const cItems = c.split('')
const dItems = d.split('')
console.log(cItems)
// ['ざ']
console.log(dItems)
// ['さ', '゙']㈱の正規化
正規化の例としてよく挙がる㈱は NFKC と NFKD で同じ結果となります。
const c = '㈱'.normalize('NFKC')
const d = '㈱'.normalize('NFKD')
const isEqual = c === d
console.log(isEqual)
// true
const cItems = c.split('')
const dItems = c.split('')
console.log(cItems)
// ['(', '株', ')']
console.log(dItems)
// ['(', '株', ')']㈱は NFKC と NFKD でカッコが分離され、半角カッコが独立しています。