Unicode 용어집

150개의 필수 Unicode 용어 해설 — 문자 인코딩 기초부터 보안 개념까지.

인코딩 (17)

ASCII

미국 정보 교환 표준 부호. 0~127의 128개 문자를 다루는 7비트 인코딩으로, 제어 문자, 숫자, 라틴 문자, 기본 기호를 포함합니다.

ASCII Art

Visual art created from text characters, originally limited to the 95 printable ASCII characters. Unicode expands the palette with box-drawing …

Base64

Binary-to-text encoding that represents binary data using 64 ASCII characters (A–Z, a–z, 0–9, +, /). Used for embedding binary data …

Big5

주로 대만과 홍콩에서 사용되는 번체 중국어 문자 인코딩으로, 약 13,000개의 CJK 문자를 인코딩합니다.

EBCDIC

확장 이진화 십진법 교환 부호. 문자 범위가 연속적이지 않은 IBM 메인프레임 인코딩으로, 금융 및 기업 메인프레임에서 여전히 사용됩니다.

EUC-KR

KS X 1001 기반의 한국어 문자 인코딩으로, 한글 음절과 한자를 2바이트 시퀀스에 매핑합니다.

GB2312 / GB18030

간체 중국어 문자 인코딩 체계: GB2312(6,763자)에서 GBK를 거쳐 GB18030으로 발전하였으며, 유니코드와 호환되는 중국 국가 표준입니다.

IANA 문자셋

IANA가 관리하는 문자 인코딩 이름의 공식 레지스트리로, HTTP Content-Type 헤더와 MIME에서 사용됩니다(예: charset=utf-8).

ISO 8859

서로 다른 언어권을 위한 8비트 단일 바이트 인코딩 모음. ISO 8859-1(Latin-1)은 유니코드 처음 256개 코드 포인트의 기초가 되었습니다.

Shift JIS

단일 바이트 ASCII/JIS 로만과 이중 바이트 JIS X 0208 한자를 결합한 일본어 문자 인코딩. 레거시 일본 시스템에서 여전히 사용됩니다.

UCS-2

BMP(U+0000~U+FFFF)만 지원하는 구식 고정 2바이트 인코딩. UTF-16의 전신으로 보충 문자를 표현할 수 없습니다.

UTF-16

16비트 코드 단위 1개 또는 2개(2바이트 또는 4바이트)를 사용하는 가변 길이 유니코드 인코딩. Java, JavaScript, Windows 내부에서 사용됩니다.

UTF-32

문자당 정확히 4바이트를 사용하는 고정 길이 유니코드 인코딩. 단순하지만 공간 효율이 낮으며, Python 3(CPython) 내부에서 사용됩니다.

UTF-8

문자당 1~4바이트를 사용하는 가변 길이 유니코드 인코딩. 웹의 지배적 인코딩(웹사이트의 98% 이상)으로 ASCII와 완전히 하위 호환됩니다.

Windows-1252

ISO 8859-1의 Microsoft 확장판으로, 0x80~0x9F 범위에 스마트 따옴표, 줄표, 유로 기호를 추가합니다. 가장 흔한 레거시 라틴 인코딩입니다.

문자 인코딩

문자를 디지털 저장 및 전송을 위한 바이트 시퀀스에 매핑하는 시스템. 모든 텍스트 파일에는 인코딩이 있으며, 올바르게 선언되었는지가 중요합니다.

바이트 순서 표시 (BOM)

텍스트 스트림 앞에 놓여 바이트 순서와 인코딩을 나타내는 U+FEFF. UTF-16/32에서는 필수이며, UTF-8에서는 선택 사항으로 권장되지 않습니다.

유니코드 표준 (25)

CJK (한중일)

한중일 — 유니코드에서 통합 한자 블록 및 관련 문자 체계를 아우르는 집합적 용어. CJK 통합 한자는 20,992개 이상의 문자를 포함합니다.

Han Unification

The process of mapping Chinese, Japanese, and Korean ideographs that share a common historical origin to a single Unicode code …

Hangul Jamo

The individual consonant and vowel components (jamo) of the Korean Hangul writing system. Unicode encodes both precomposed Hangul syllables (U+AC00–U+D7A3) …

ISO 10646 / 범용 문자 집합

유니코드와 동기화된 국제 표준(ISO/IEC 10646)으로, 동일한 문자 목록과 코드 포인트를 정의하지만 유니코드의 추가 알고리즘 및 속성은 포함하지 않습니다.

Unicode

모든 문자 체계의 모든 문자에 고유 번호(코드 포인트)를 부여하는 범용 문자 인코딩 표준. 버전 16.0에는 154,998개의 할당된 문자가 포함됩니다.

Unicode Standard Annex (UAX)

Normative or informative documents that are integral parts of the Unicode Standard. UAX#9 (Bidi Algorithm), UAX#11 (East Asian Width), UAX#15 …

Unicode Technical Report (UTR)

Informational documents published by the Unicode Consortium covering specific topics like security mechanisms (UTR#39), text segmentation (UTR#29), and line breaking …

기본 다국어 평면 (BMP)

평면 0(U+0000~U+FFFF)으로, 라틴, 그리스, 키릴, CJK, 아랍 문자 및 대부분의 기호 등 가장 많이 사용되는 문자를 포함합니다. 이 평면의 문자는 …

미할당 코드 포인트

어느 유니코드 버전에서도 문자가 할당되지 않은 코드 포인트로, Cn(미할당)으로 분류됩니다. 향후 버전에서 할당될 수 있습니다.

보충 평면 / 아스트랄 평면

평면 1~16(U+10000~U+10FFFF)으로, 이모지, 고대 문자, CJK 확장, 악보 등을 포함합니다. UTF-16에서는 서로게이트 쌍이 필요합니다.

비문자

내부 사용을 위해 영구 예약된 코드 포인트(총 66개): 각 평면의 U+FDD0~U+FDEF 및 U+nFFFE/U+nFFFF. 텍스트에서는 유효하지만 외부 교환에 사용해서는 안 됩니다.

사용자 정의 영역 (PUA)

조직이 자체 문자를 할당할 수 있도록 예약된 영역: BMP PUA(U+E000~U+F8FF)와 제15·16평면의 보충 PUA를 포함합니다.

서로게이트

UTF-16 서로게이트 쌍 전용으로 예약된 코드 포인트 U+D800~U+DFFF. 유효한 유니코드 스칼라 값이 아니므로 독립 문자로 나타나서는 안 됩니다.

예약된 코드 포인트

향후 표준화를 위해 예약된 코드 포인트로, 비문자(영구 예약) 및 사용자 정의 영역(사용자 할당 가능)과는 구별됩니다.

유니코드 문자 데이터베이스 (UCD)

모든 유니코드 문자 속성을 정의하는 기계 판독 가능한 데이터 파일 모음으로, UnicodeData.txt, Blocks.txt, Scripts.txt 등이 포함됩니다.

유니코드 버전

새로운 문자, 문자 체계, 기능을 추가하는 유니코드 표준의 주요 릴리스. 현재 버전은 Unicode 16.0(2025년 9월)입니다.

유니코드 스칼라 값

서로게이트 코드 포인트(U+D800~U+DFFF)를 제외한 모든 코드 포인트. 실제 문자를 나타낼 수 있는 유효한 값의 집합으로, 총 1,112,064개입니다.

유니코드 안정성 정책

문자가 한 번 할당되면 코드 포인트와 이름이 절대 변경되지 않음을 보장하는 정책. 속성은 정제될 수 있지만 할당은 영구적입니다.

유니코드 컨소시엄

유니코드 표준을 개발하고 유지 관리하는 비영리 단체. Apple, Google, Microsoft, Meta 등이 회원으로 참여합니다.

추상 문자

텍스트 데이터의 정리, 제어 또는 표현에 사용되는 정보의 단위로, 코드 포인트를 받기 전의 개념적 실체입니다.

코드 공간

가능한 모든 유니코드 코드 포인트의 범위: U+0000~U+10FFFF(총 1,114,112개)로, 각각 65,536개의 코드 포인트를 가진 17개 평면으로 나뉩니다.

코드 단위

인코딩의 최소 단위: UTF-8에서는 8비트 바이트, UTF-16에서는 16비트 워드, UTF-32에서는 32비트 워드. 하나의 문자가 여러 코드 단위를 필요로 할 수 …

코드 포인트

유니코드 코드 공간(U+0000~U+10FFFF) 내의 수치 값으로, U+XXXX 형식으로 표기합니다. 모든 코드 포인트가 문자에 할당된 것은 아닙니다.

평면

연속된 65,536개의 코드 포인트 블록. 유니코드는 17개의 평면(0~16)을 가지며, 평면 0은 BMP, 평면 1은 SMP(이모지, 고대 문자), 평면 2는 SIP(CJK …

할당된 문자

유니코드 버전에서 문자 지정을 받은 코드 포인트. Unicode 16.0 기준으로 1,114,112개 중 154,998개의 코드 포인트가 할당되어 있습니다.

속성 (19)

East Asian Width

Unicode property (UAX#11) classifying characters as Narrow, Wide, Fullwidth, Halfwidth, Ambiguous, or Neutral. Wide characters (CJK ideographs, katakana) occupy two …

Joining Type

Unicode property controlling how Arabic and Syriac characters connect to adjacent characters. Types include Right_Joining, Left_Joining, Dual_Joining, and Non_Joining.

Script Extensions

Unicode property listing all scripts that use a character, broader than the single-valued Script property. Common characters like digits have …

결합 클래스

정규 분해 과정에서 결합 기호의 순서를 제어하는 수치 값(0~254)으로, 어떤 결합 기호를 재정렬할 수 있는지 결정합니다.

구두점

마침표, 쉼표, 대시, 따옴표 등 문어를 구성하고 명료하게 하는 데 사용되는 문자. 유니코드 일반 범주 P가 모든 구두점을 포함합니다.

기본 무시 문자

지원하지 않는 프로세스에서 눈에 보이는 효과 없이 무시할 수 있는 문자로, 이형 선택자, 너비 없는 문자, 언어 태그 등이 포함됩니다.

나이 속성

문자가 처음 할당된 유니코드 버전. 시스템 및 소프트웨어 버전 간의 문자 지원 여부를 판단하는 데 유용합니다.

대소문자 변환

문자를 대문자, 소문자, 제목 대문자로 변환하는 규칙. 로케일에 따라 달라질 수 있으며(터키어 I 문제), 일대다 매핑도 가능합니다(ß → SS).

대칭 속성

RTL 문맥에서 글리프를 수평으로 반전해야 하는 문자. 예: ( → ), [ → ], { → }, « → ».

문자 체계

문자가 속한 문자 체계(예: 라틴, 키릴, 한자). Unicode 16.0은 168개의 문자 체계를 정의하며, Script 속성은 보안 및 혼합 문자 체계 …

분해

문자를 구성 요소로 분해하는 매핑. 정규 분해는 의미를 보존(é → e + ◌́)하고, 호환 분해는 의미가 바뀔 수 있습니다(fi → …

블록

명명된 연속 코드 포인트 범위(예: 기본 라틴 = U+0000~U+007F). Unicode 16.0은 336개 블록을 정의하며, 모든 코드 포인트는 정확히 하나의 블록에 …

수치 값

문자의 수치적 해석(해당하는 경우): 숫자 값(0~9), 십진수 값 또는 일반 수치 값(예: ½ = 0.5, Ⅳ = 4).

양방향 범주

양방향 텍스트(왼쪽에서 오른쪽, 오른쪽에서 왼쪽, 약, 중립)에서 문자의 동작 방식을 결정하는 속성. 표시 순서를 결정하기 위해 유니코드 양방향 알고리즘이 사용합니다.

이름 별칭

안정성 정책에 따라 유니코드 이름은 변경할 수 없으므로, 문자의 대체 이름을 제공합니다. 수정, 약어, 잘못된 명칭 수정에 사용됩니다.

일반 범주

모든 코드 포인트를 7개 주요 분류(문자, 기호, 숫자, 구두점, 기호, 구분자, 기타)로 나뉜 30개 범주(Lu, Ll, Nd, So 등) 중 …

정규 동치

의미상 동일하여 동등하게 처리해야 하는 두 문자 시퀀스. 예: é (U+00E9) ≡ e + ◌́ (U+0065 + U+0301).

호환 동치

동일한 추상적 내용을 가지지만 외관이 다를 수 있는 두 문자 시퀀스. 정규 동치보다 더 넓은 개념. 예: fi ≈ fi, …

확장 문자소 클러스터

사용자가 인식하는 '문자' — 단일 단위처럼 느껴지는 것. 여러 코드 포인트(기본 문자 + 결합 기호, 또는 이모지 ZWJ 시퀀스)로 구성될 …

알고리즘 (15)

Case Folding

Mapping characters to a common case form for case-insensitive comparison. More comprehensive than lowercasing: German ß → ss, Turkish İ …

Grapheme Cluster Boundary

Rules (UAX#29) for determining where one user-perceived character ends and another begins. Critical for cursor movement, text selection, and correctly …

NFC (Canonical Composition)

정규화 형식 C: 분해 후 정규 재합성하여 가장 짧은 형식을 생성합니다. 데이터 저장 및 교환에 권장되며, 웹 표준 형식입니다.

NFD (Canonical Decomposition)

정규화 형식 D: 재합성 없이 완전히 분해합니다. macOS HFS+ 파일 시스템에서 사용됩니다. é (U+00E9) → e + ◌́ (U+0065 + …

NFKC (Compatibility Composition)

정규화 형식 KC: 호환 분해 후 정규 합성. 시각적으로 유사한 문자를 통합합니다(fi→fi, ²→2, Ⅳ→IV). 식별자 비교에 사용됩니다.

NFKD (Compatibility Decomposition)

정규화 형식 KD: 재합성 없이 호환 분해. 가장 강력한 정규화 방식으로 서식 정보를 가장 많이 제거합니다.

String Comparison

Comparing Unicode strings requires normalization (NFC/NFD) and optionally collation (locale-aware sorting). Binary comparison of code points alone gives incorrect results …

단어 경계

유니코드 단어 경계 규칙에 따라 결정된 단어 사이의 위치. 단순히 공백으로 분리하는 것이 아니라 CJK(공백 없음), 줄임말, 숫자를 올바르게 처리합니다.

문장 경계

유니코드 규칙에 따른 문장 사이의 위치. 마침표로만 분리하는 것보다 복잡하며, 약어(Mr.), 생략 부호(...), 소수점(3.14) 등을 처리합니다.

유니코드 양방향 알고리즘 (UBA)

문자 양방향 범주와 명시적 방향 재정의를 사용하여 혼합 방향 텍스트(예: 영어 + 아랍어)의 표시 순서를 결정하는 알고리즘.

유니코드 정규화

유니코드 텍스트를 표준 정규 형식으로 변환하는 과정. 네 가지 형식: NFC(합성), NFD(분해), NFKC(호환 합성), NFKD(호환 분해).

유니코드 정렬 알고리즘 (UCA)

기본 문자 → 악센트 → 대소문자 → 동점 비교자의 다단계 비교를 통해 유니코드 문자열을 비교하고 정렬하는 표준 알고리즘. 로케일 맞춤 …

유니코드 줄 바꿈 알고리즘

문자 속성, CJK 단어 경계, 줄 바꿈 기회를 고려하여 텍스트를 다음 줄로 줄 바꿈할 수 있는 위치를 결정하는 규칙.

유니코드 텍스트 분절

텍스트의 경계를 찾는 알고리즘: 문자소 클러스터, 단어, 문장 경계. 커서 이동, 텍스트 선택, 텍스트 처리에 필수적입니다.

합성 제외

비선두 분해로 인한 문제와 알고리즘 안정성을 보장하기 위해 정규 합성(NFC)에서 제외되는 문자. CompositionExclusions.txt에 목록이 있습니다.

타이포그래피 (19)

CSS unicode-range

CSS @font-face descriptor specifying which Unicode code points a font should cover. Enables downloading only the font subset needed for …

Em / En (타이포그래피 단위)

Em: 폰트 크기와 같은 너비. En: Em의 절반. 엠 대시 너비, 엠 공백, 엔 공백, CSS 단위(1em, 0.5em) 정의에 사용됩니다.

Font Fallback

The mechanism by which a rendering engine substitutes glyphs from a secondary font when the primary font lacks coverage for …

OpenType

Modern font format developed by Microsoft and Adobe supporting up to 65,535 glyphs, advanced typographic features (ligatures, alternates, kerning), and …

RTL (오른쪽에서 왼쪽)

문자가 오른쪽에서 왼쪽으로 흐르는 텍스트 방향. 아랍어, 히브리어, 타아나 문자 등에서 사용되며, 올바른 표시를 위해 양방향 알고리즘이 필요합니다.

Web Fonts

Fonts downloaded by the browser to render text, declared via CSS @font-face. WOFF2 is the standard format. Unicode subsetting and …

결합 문자

앞의 기본 문자에 붙어 수정하는 문자. 일반 범주: Mn(비공백), Mc(공백 결합), Me(둘러싸기). 예: ◌́ (U+0301 결합 예음 부호).

공백 문자

가로 또는 세로 공간을 표현하지만 눈에 보이는 글리프가 없는 문자. 유니코드는 서로 다른 너비와 줄 바꿈 동작을 가진 17개 이상의 …

글리프

폰트가 렌더링하는 문자의 시각적 표현. 하나의 문자가 여러 글리프를 가질 수 있고(합자, 문맥 형태), 하나의 글리프가 여러 문자를 나타낼 수도 …

너비 없는 문자

전진 너비가 0인 문자 — 렌더링에서 보이지 않지만 텍스트 동작에 영향을 줍니다. ZWSP(단어 경계), ZWJ(결합), ZWNJ(결합 방지), WJ(줄 바꿈 방지) …

대시

문장의 일부를 구분하거나 범위를 나타내는 데 사용되는 구두점. 유니코드는 하이픈(‐), 엔 대시(–), 엠 대시(—), 도표 대시(‒) 등 다양한 대시를 정의합니다.

따옴표

직접 발화나 인용을 감싸는 쌍 구두점. 유니코드에는 직각형(″″), 굴형(), 기요메(« »), CJK 코너 브래킷(「」), 로케일별 형태 등이 포함됩니다.

분음 부호 / 다이아크리틱

발음이나 의미를 바꾸기 위해 문자에 추가되는 기호. 미리 합성된 형태(é U+00E9) 또는 결합 형태(e + ◌́ U+0065+U+0301)로 표현됩니다. 악센트, 움라우트, …

생략 부호

U+2026 수평 줄임표(…). 세 개의 마침표 대신 사용하는 단일 문자로, 타이포그래피적으로 올바르며 3개가 아닌 1개의 문자로 계산됩니다.

스몰 캡스

소문자 높이의 대문자 자형. CSS: font-variant: small-caps. 유니코드에는 라틴 확장(ᴀ~ᴢ)에 실제 스몰 캡스 문자가 있습니다.

줄 바꿈 없는 공백

U+00A0. 해당 위치에서 줄 바꿈을 방지하는 공백. HTML:  . 숫자와 단위(100 km), 고유명사(Mr. Smith), 약어 뒤에 사용됩니다.

커닝

시각적 조화를 위해 특정 문자 쌍(예: AV, To, LT) 사이의 간격을 조정하는 것. 유니코드 개념이 아닌 폰트 기능이지만 유니코드 텍스트 …

폰트

특정 크기, 굵기, 스타일의 서체 구현. 디지털 타이포그래피에서는 글리프 정의와 메트릭을 포함한 폰트 파일(TTF, OTF, WOFF2)을 의미합니다.

합자

두 개 이상의 문자를 하나의 글리프로 결합한 것. 타이포그래피적(OpenType를 통한 fi → fi) 또는 유니코드 문자(fi U+FB01)일 수 있습니다. 아랍 …

입력 방식 (9)

16진수 입력

16진수 값을 입력하여 유니코드 코드 포인트를 직접 입력하는 방법. Mac: Option + 16진수 + 해제. Windows: Word/WordPad에서 16진수 입력 후 …

Alt 코드

Alt + 숫자 패드 숫자를 사용하여 코드 페이지 번호로 문자를 입력하는 Windows 입력 방법(Alt+0169 → ©, Alt+0176 → °). 코드 …

Character Palette

A system-level tool for browsing and inserting Unicode characters. macOS Character Viewer (Ctrl+Cmd+Space), Windows Character Map (charmap.exe), and Linux gucharmap …

데드 키

즉시 출력 없이 다음 키 입력을 수정하는 키. 분음 부호 입력에 사용됩니다: ` 누른 후 e를 누르면 è가 됩니다. 유럽 …

문자 선택기

문자를 시각적으로 탐색하고 선택하는 UI 구성 요소(네이티브 또는 웹 기반). 모바일의 이모지 선택기가 가장 일반적인 예입니다.

문자표

유니코드 문자를 탐색하고 삽입하는 GUI 유틸리티. Windows: charmap.exe. Mac: 문자 뷰어(Control+Command+Space). Linux: gucharmap.

유니코드 입력 방법

유니코드 코드 포인트로 문자를 입력하는 모든 방법: 16진수 입력(Mac), Ctrl+Shift+U를 통한 U+XXXX 입력(Linux), Alt+X(Windows 응용 프로그램).

입력기 (IME)

음성 또는 구조적 매칭을 통해 키 입력 시퀀스를 문자로 변환하여 표준 키보드로 복잡한 문자(CJK, 한글 등)를 입력할 수 있게 하는 …

컴포즈 키

다중 키 합성 시퀀스를 시작하는 키(보통 오른쪽 Alt 또는 사용자 지정). Linux/Unix 기능: Compose + a + e → æ. …

웹 & HTML (16)

Content-Type 문자셋

응답의 문자 인코딩을 선언하는 HTTP 헤더 매개변수(Content-Type: text/html; charset=utf-8). 문서 내 인코딩 선언보다 우선합니다.

CSS content 속성

::before 및 ::after 의사 요소를 통해 유니코드 이스케이프를 사용하여 생성된 콘텐츠를 삽입하는 CSS 속성: content: '\2713'은 ✓를 삽입합니다.

CSS Text Direction

CSS properties (direction, writing-mode, unicode-bidi) controlling text layout direction. Works with Unicode Bidi Algorithm for mixed LTR/RTL content in web …

HTML 엔티티

HTML에서 문자를 텍스트로 표현하는 방식. 세 가지 형태: 이름(&), 십진수(&), 16진수(&). HTML 구문과 충돌하는 문자에 필수적입니다.

JavaScript Intl API

ECMAScript Internationalization API providing locale-aware string comparison (Collator), number formatting (NumberFormat), date formatting (DateTimeFormat), and segmentation (Segmenter).

Punycode

유니코드 도메인 이름을 ASCII 호환 인코딩으로 변환하여 xn-- 접두사가 붙은 ASCII 문자열로 나타냅니다. münchen.de → xn--mnchen-3ya.de.

Unicode in CSS

CSS supports Unicode via escape sequences (\2713 for ✓), the content property for generated text, unicode-range for font subsetting, and …

XML 문자 참조

XML 버전의 숫자 문자 참조: ✓ 또는 ✓. XML에는 명명된 엔티티가 5개(& < > " ')뿐이지만 HTML5는 2,231개를 가집니다.

국제화 도메인 이름 (IDN)

비ASCII 유니코드 문자를 포함하는 도메인 이름으로, 내부적으로는 Punycode(xn--...)로 저장되지만 사용자에게는 유니코드로 표시됩니다. 보안 위협: 동형이자 공격.

단어 결합자

U+2060. 줄 바꿈을 방지하는 너비 없는 문자. 너비 없는 줄 바꿈 없는 공백으로서 U+FEFF(BOM)의 현대적 대체재입니다.

명명된 문자 참조

사람이 읽기 쉬운 이름을 사용하는 HTML 엔티티: © → ©, — → —. HTML5는 2,231개의 명명된 참조를 정의하며 대소문자를 구분합니다.

숫자 문자 참조

유니코드 코드 포인트 번호를 사용하는 HTML 엔티티: 십진수(© → ©) 또는 16진수(© → ©). 명명된 참조와 달리 모든 유니코드 문자에 …

이모지 표현

일반적으로 이형 선택자 16(U+FE0F)을 사용하여 문자를 컬러풀한 이모지 글리프로 렌더링하는 것. 일부 문자는 기본적으로 이모지 표현, 다른 문자는 텍스트 표현으로 …

이형 선택자

특정 글리프 변형을 선택하는 문자(U+FE00~U+FE0F, U+E0100~U+E01EF). VS15(U+FE0E)는 텍스트 표현, VS16(U+FE0F)은 이모지 표현을 나타냅니다.

텍스트 표현

기본 이모지 표현 대신 일반적으로 이형 선택자 15(U+FE0E)를 사용하여 문자를 단색 텍스트 글리프로 렌더링하는 것.

퍼센트 인코딩 (URL 인코딩)

URL에서 비ASCII 문자와 예약 문자를 각 바이트를 %XX로 대체하여 인코딩합니다. 먼저 UTF-8로 변환한 후 각 바이트를 퍼센트 인코딩합니다: é → …

프로그래밍 & 개발 (13)

Java Unicode

Java strings use UTF-16 internally. char is 16-bit (only BMP). For supplementary characters, use codePointAt() and Character.toChars(). Java's \uXXXX escapes …

Python Unicode

Python 3 uses Unicode strings by default (str = UTF-8 internally via PEP 393). Key features: \N{name} escapes, unicodedata module, …

Rust Unicode

Rust strings (str/String) are guaranteed valid UTF-8. char type represents a Unicode scalar value (4 bytes). Iteration via .chars() yields …

널 문자

U+0000(NUL). 첫 번째 유니코드/ASCII 문자로, C/C++에서 문자열 종료자로 사용됩니다. 보안 위험: 널 바이트 삽입은 취약한 시스템에서 문자열을 잘라낼 수 있습니다.

대체 문자

U+FFFD(). 디코더가 유효하지 않은 바이트 시퀀스를 만났을 때 표시되는 문자 — '디코딩에 문제가 생겼습니다'의 범용 기호.

문자 깨짐 (모지바케)

잘못된 인코딩으로 바이트를 디코딩할 때 생기는 깨진 텍스트. 일본어 용어(文字化け). 예: 'café'를 UTF-8로 저장했지만 Latin-1로 읽으면 'café'가 됩니다.

문자열

프로그래밍 언어에서 문자의 시퀀스. 내부 표현은 다양합니다: UTF-8(Go, Rust, 최신 Python), UTF-16(Java, JavaScript, C#), UTF-32(Python).

문자열 길이 모호성

유니코드 문자열의 '길이'는 단위에 따라 다릅니다: 코드 단위(JavaScript .length), 코드 포인트(Python len()), 문자소 클러스터. 👨‍👩‍👧‍👦 = 7 코드 포인트, 1 …

보이지 않는 문자

눈에 보이는 글리프가 없는 문자: 공백, 너비 없는 문자, 제어 문자, 서식 문자. 스푸핑 및 텍스트 밀수 같은 보안 문제를 …

서로게이트 쌍

UTF-16에서 보충 문자를 인코딩하기 위해 함께 사용되는 두 개의 16비트 코드 단위(상위 서로게이트 U+D800~U+DBFF + 하위 서로게이트 U+DC00~U+DFFF). 😀 = …

유니코드 이스케이프 시퀀스

소스 코드에서 유니코드 문자를 나타내는 구문. 언어마다 다릅니다: \u2713(Python/Java/JS), \u{2713}(JS/Ruby/Rust), \U00012345(Python/C).

유니코드 정규 표현식

유니코드 속성을 사용하는 정규 표현식 패턴: \p{L}(모든 문자), \p{Script=Greek}(그리스 문자), \p{Emoji}. 언어 및 정규식 엔진에 따라 지원 여부가 다릅니다.

인코딩 / 디코딩

인코딩은 문자를 바이트로 변환(str.encode('utf-8'))하고, 디코딩은 바이트를 문자로 변환(bytes.decode('utf-8'))합니다. 이를 올바르게 처리하면 문자 깨짐을 방지할 수 있습니다.

보안 (10)

Bidi Text Attack

Exploiting Unicode bidirectional control characters to disguise malicious code or filenames. The 'Trojan Source' attack (CVE-2021-42574) uses bidi overrides to …

IDN 동형이자 공격

도메인 이름에 시각적으로 유사한 유니코드 문자를 사용하여 합법적인 사이트를 사칭하는 공격. аpple.com(키릴 а)은 apple.com처럼 보입니다. 브라우저는 Punycode 표시 규칙으로 방어합니다.

Normalization Attack

Exploiting Unicode normalization to bypass security filters. Input validated before normalization may change form after: 'fi' (U+FB01) normalizes to 'fi', …

너비 없는 결합자 (ZWJ)

U+200D. 인접 문자의 결합을 요청합니다. 이모지 시퀀스에 필수적입니다(👩+ZWJ+💻=👩‍💻). 인도 문자에서는 합자 형성을 요청합니다. 텍스트 경계를 숨기는 데도 사용될 수 있습니다.

너비 없는 비결합자 (ZWNJ)

U+200C. 인접 문자의 결합을 방지합니다. 페르시아어/아랍어에서 올바른 글자 형태를 위해 필수적이며, 데바나가리에서 합자를 방지하는 데 사용됩니다.

동형이자

서로 다른 문자 체계에서 동일하거나 매우 유사하게 보이는 문자. 예: 라틴 'a'와 키릴 'а'. 피싱, 스푸핑, 사회공학 공격에 사용됩니다.

양방향 재정의 공격

유니코드 양방향 재정의 문자(U+202A~U+202E, U+2066~U+2069)를 사용하여 악성 파일 이름이나 코드를 위장하는 공격. 'readme‮fdp.exe'는 'readmeexe.pdf'로 표시됩니다.

유니코드 스푸핑

유니코드 기능을 사용하여 사용자를 속이는 것: 가짜 도메인을 위한 동형이자, 가짜 파일 확장자를 위한 양방향 재정의, 숨겨진 텍스트를 위한 보이지 …

혼동 가능 문자

confusables.txt(UCD)에 정의된 시각적으로 혼동될 수 있는 문자 쌍에 대한 유니코드 공식 용어. 동형이자보다 넓은 개념으로 단순히 유사한 문자도 포함합니다.

혼합 문자 체계 감지

서로 다른 문자 체계의 문자를 혼합하는 텍스트를 식별합니다(예: 라틴 + 키릴). 동형이자 공격에 대한 주요 방어 수단으로, 브라우저는 이를 사용하여 …

이모지 (6)

기타 (1)