본문으로 건너뛰기

혼동 문자를 안전한 텍스트로 정규화하기

혼동 문자 정규화란 닮은꼴 문자를 각각 흉내 내는 일반 문자로 바꿔, 똑같아 보이는 두 문자열이 비교할 때도 같도록 만드는 것입니다. 사용자 이름 비교, 차단 목록 대조, 식별자 중복 제거 전에 하면 좋습니다.

예제 풀이

입력
Cоnfig file: аdmin2, Noёl, café
발견된 문자 체계
로마자 (Latn), 키릴 문자 (Cyrl)
표시된 문자 수
7
위치문자코드 포인트문자 체계대체 문자규칙
0CU+FF23로마자CNFKC 정규화
1оU+043E키릴 문자o혼동 문자 매핑표
7fiU+FB01로마자fiNFKC 정규화
10:U+FF1A일반 문자:혼동 문자 매핑표
12аU+0430키릴 문자a혼동 문자 매핑표
172U+FF12일반 문자2혼동 문자 매핑표
22ёU+0451키릴 문자ë혼동 문자 매핑표
읽을 수 있는 유니코드 유지
Config file: admin2, Noël, café
엄격한 ASCII 대체
Config file: admin2, Noel, café

작동 방식

  • 먼저 알려진 닮은꼴 문자를 내장 매핑표에 따라 바꿉니다. 매핑표에 없는 문자는 NFKC로 정규화되어 전각 형태, 합자, 기타 호환 문자가 표준 문자로 바뀝니다.
  • '읽을 수 있는 유니코드 유지'는 매핑표에 정의된 경우 악센트가 있는 문자를 남깁니다(예: 키릴 문자 ё → ë). '엄격한 ASCII 대체'는 대신 일반 ASCII 문자를 사용합니다(ё → e).
  • 매핑표에 없고 NFKC로도 바뀌지 않는 문자는 그대로 유지되므로 café는 두 모드 모두에서 악센트를 유지합니다. 정규화된 텍스트는 비교용 키일 뿐 보안 판정이 아닙니다. 원문도 함께 보관하고 표시된 문자를 검토하세요.

변환은 최선의 노력입니다. 매핑된 혼란 항목 및 NFKC 접기는 결정적이지만 일부 합법적인 유니코드는 플래그가 지정되지 않습니다.

당신의 텍스트

붙여넣기 또는 입력 - 입력할 때 결과가 업데이트됩니다(긴 입력의 경우 약간 디바운싱됨).

30자 스캔됨
7개 의심 항목
엄격한 ASCII 대체
변환 모드

엄격한 ASCII 모드는 알려진 유사 항목을 적극적으로 ASCII로 대체합니다. 문자가 번들 매핑표에 있거나 NFKC로 접힌 경우 합법적인 비라틴어 텍스트를 변경할 수 있습니다.

원본(의심스러운 문자가 표시됨)

원래 보기의 의심스러운 문자에는 밑줄이 그어져 있고 'susp'라는 라벨이 붙어 있습니다. 하이라이트 컬러 외에도

suspicious character Csuspicious character оnfig suspicious character filesuspicious character : suspicious character аdminsuspicious character 2, Nosuspicious character ёl, café
정리된 출력
문자 분석
인덱스(0 기반)원본교체코드 포인트이유
0CCU+FF23NFKC normalization changed this character (compatibility or width folding).
1оoU+043ENon-ASCII confusable mapped to a safer Latin ASCII equivalent.
2nnU+006ENot flagged as a confusable or compatibility character.
3ffU+0066Not flagged as a confusable or compatibility character.
4iiU+0069Not flagged as a confusable or compatibility character.
5ggU+0067Not flagged as a confusable or compatibility character.
6 U+0020Not flagged as a confusable or compatibility character.
7fifiU+FB01NFKC normalization changed this character (compatibility or width folding).
8llU+006CNot flagged as a confusable or compatibility character.
9eeU+0065Not flagged as a confusable or compatibility character.
10::U+FF1ANon-ASCII confusable mapped to a safer Latin ASCII equivalent.
11 U+0020Not flagged as a confusable or compatibility character.
12аaU+0430Non-ASCII confusable mapped to a safer Latin ASCII equivalent.
13ddU+0064Not flagged as a confusable or compatibility character.
14mmU+006DNot flagged as a confusable or compatibility character.
15iiU+0069Not flagged as a confusable or compatibility character.
16nnU+006ENot flagged as a confusable or compatibility character.
1722U+FF12Non-ASCII confusable mapped to a safer Latin ASCII equivalent.
18,,U+002CNot flagged as a confusable or compatibility character.
19 U+0020Not flagged as a confusable or compatibility character.
20NNU+004ENot flagged as a confusable or compatibility character.
21ooU+006FNot flagged as a confusable or compatibility character.
22ёeU+0451Non-ASCII confusable mapped to a safer Latin ASCII equivalent.
23llU+006CNot flagged as a confusable or compatibility character.
24,,U+002CNot flagged as a confusable or compatibility character.
25 U+0020Not flagged as a confusable or compatibility character.
26ccU+0063Not flagged as a confusable or compatibility character.
27aaU+0061Not flagged as a confusable or compatibility character.
28ffU+0066Not flagged as a confusable or compatibility character.
29ééU+00E9Not flagged as a confusable or compatibility character.

다른 가이드