{{위키데이터 속성 추적}}
[[파일:KB Dubeolsik for Old Hangul (NG3).svg|섬네일|두벌식 한글 자판.]]

'''문자 인코딩'''(文字 - , {{llang|en|character encoding}}) 또는 텍스트 인코딩(text encoding)<ref>(마이크로소프트-파일을 열거나 저장할 때 텍스트 인코딩 선택)https://support.microsoft.com/ko-kr/office/%ED%8C%8C%EC%9D%BC%EC%9D%84-%EC%97%B4%EA%B1%B0%EB%82%98-%EC%A0%80%EC%9E%A5%ED%95%A0-%EB%95%8C-%ED%85%8D%EC%8A%A4%ED%8A%B8-%EC%9D%B8%EC%BD%94%EB%94%A9-%EC%84%A0%ED%83%9D-60d59c21-88b5-4006-831c-d536d42fd861#bm1</ref> 또는 줄여서 '''[[부호화|인코딩]]'''은 사용자가 입력한 [[문자]]나 [[기호]]들을 [[코드|컴퓨터가 이용할 수 있는 신호]]로 만드는 것을 말한다. 
[[컴퓨터 시스템|넓은 의미의 컴퓨터]]는 이러한 신호를 입력받고 처리하는 기계를 뜻하며, [[신호 처리 시스템]]을 통해 이렇게 처리된 정보를 사용자가 이해할 수 있게 된다.<ref>{{서적 인용|url=https://www.docsity.com/pt/electric-circuits-9th-edition-by-james-w-nilsson-susan-riedel/4806377/|제목=Electric Circuits|성=Nilsson|이름=James W|성2=Riedel|이름2=Susan|날짜=2011|판=9|출판사=Pearson|쪽=9}}</ref> 이 신호를 입력하는 인코딩과 문자를 해독하는 [[디코딩]]을 하기 위해선 미리 정해진 기준을 바탕으로 입력과 해독이 처리되어야 하는데, 이를 문자열 세트 또는 문자셋이라고 한다. 
초기 보급형 컴퓨터의 문자열 세트는 [[아스키]]나 [[EBCDIC]]이 표준이었으나, 이러한 문자열 세트는 세계 곳곳에 인터넷이 보급되며 표현해야 할 문자가 증가하면서 이러한 문자셋들을 표준화하기 위해 많은 [[Ad hoc|대체 방식]]이 개발되었다. 표준 문자셋을 개발하는 것에 대한 논의가 이어졌고, 후에는 [[유니코드]]가 등장하게 되었다.<ref>{{서적 인용|제목=HTML CSS|성=김선희|이름=|날짜=2013-08-26|판=|출판사=길벗출판사|쪽=96|장=2|isbn=9788966185795}}</ref>

== 문자열 세트의 종류 ==
* [[ISO/IEC 646|ISO 646]]
** [[ASCII]]
* [[EBCDIC]]
** [[EBCDIC 37|CP37]]
** [[EBCDIC 930|CP930]]
** [[EBCDIC 1047|CP1047]]
* [[ISO/IEC 8859|ISO 8859]]:
** [[ISO/IEC 8859-1|ISO 8859-1]] 서유럽
** [[ISO/IEC 8859-2|ISO 8859-2]] 서유럽 및 중앙유럽
** [[ISO/IEC 8859-3|ISO 8859-3]] 서유럽 및 남유럽 (터키어, 몰타어, 에스페란토어)
** [[ISO/IEC 8859-4|ISO 8859-4]] 서유럽 및 발트 해 국가 (리투아니아어, 에스토니아어, 라프어)
** [[ISO/IEC 8859-5|ISO 8859-5]] 키릴 문자
** [[ISO/IEC 8859-6|ISO 8859-6]] 아랍 글자
** [[ISO/IEC 8859-7|ISO 8859-7]] 그리스 글자
** [[ISO/IEC 8859-8|ISO 8859-8]] 히브리 글자
** [[ISO/IEC 8859-9|ISO 8859-9]] 서유럽 (개정된 터키어 문자 집합 포함)
** [[ISO/IEC 8859-10|ISO 8859-10]] 서유럽 (개정된 노르딕어를 위한 문자 집합 및 완전 아이슬란드 문자 집합 포함)
** [[ISO/IEC 8859-11|ISO 8859-11]] 타이어
** [[ISO/IEC 8859-13|ISO 8859-13]] 발트어, 폴란드어
** [[ISO/IEC 8859-14|ISO 8859-14]] 켈트어 (아일랜드 게일어, 스코틀랜드어, 웨일스어)
** [[ISO/IEC 8859-15|ISO 8859-15]] 유로 기호 및 ISO 8859-1에 대한 다른 항목 추가
** [[ISO/IEC 8859-16|ISO 8859-16]] 중앙 유럽, 남유럽어 (폴란드어, 체코어, 슬로바키아어, 세르비아어, 크로아티아어, 헝가리어, 알바니아어, 로마어, 독일어, 이탈리아어)
* [[코드 페이지 437|CP437]], [[코드 페이지 737|CP737]], [[코드 페이지 850|CP850]], [[코드 페이지 852|CP852]], [[코드 페이지 855|CP855]], [[코드 페이지 857|CP857]], [[코드 페이지 858|CP858]], [[코드 페이지 860|CP860]], [[코드 페이지 861|CP861]], [[코드 페이지 863|CP863]], [[코드 페이지 865|CP865]], [[코드 페이지 866|CP866]], [[코드 페이지 869|CP869]]
* [[코드 페이지|MS 윈도 문자 집합]]:
** [[Windows-1250]] 라틴 글자를 이용하는 중앙 유럽 언어 (폴란드어, 체코어, 슬로바키아어, 헝가리어, 슬로베니아어, 세르비아어, 크로아티아어, 로마어, 알바니아어)
** [[Windows-1251]] 키릴 문자
** [[Windows-1252]] 서양어
** [[Windows-1253]] 그리스어
** [[Windows-1254]] 터키어
** [[Windows-1255]] 히브리어
** [[Windows-1256]] 아랍어
** [[Windows-1257]] 발트어
** [[Windows-1258]] 베트남어
* [[맥 오에스 로만]] (Mac OS Roman)
* [[KOI8-R]], [[KOI8-U]], [[KOI7]]
* [[MIK 코드 페이지|MIK]]
* [[ISCII]] 인도
* [[TSCII]] 타밀어
* [[VISCII]] 베트남어
* [[JIS X 0208]] 일본어
** [[Shift JIS]] (마이크로소프트 [[코드 페이지 932]]는 Shift_JIS의 파생)
** [[EUC-JP]]
** [[ISO/IEC 2022|ISO-2022-JP]]
* [[JIS X 0213]]는 JIS X 0208의 확장판.
** [[Shift JIS|Shift_JIS-2004]]
** [[EUC|EUC-JIS-2004]]
** [[ISO/IEC 2022|ISO-2022-JP-2004]]
* 중국어 간체자 [[GB 표준 목록|GB]]
** [[GB 2312]]
** [[GBK]] (마이크로소프트 코드 페이지 936)
** [[GB 18030]]
* 대만 [[Big5]] (더 잘 알려진 종류가 마이크로소프트 [[코드 페이지 950]])
* 홍콩 [[HKSCS]]
* 한국어
** [[KS X 1001]]은 2바이트 한국어 문자 인코딩 표준이다.
** [[EUC-KR]]
** [[ISO/IEC 2022|ISO-2022-KR]]
* [[유니코드]] ([[UTF-8]]도 참조)
* [[ANSEL]] 또는 [[ISO/IEC 6937]]

== 문자 인코딩의 구성 ==
문자 정보는 정보를 표현하기 위한 글자들의 집합을 정의한 것으로, 직접적으로 사용되지 않을 수도 있고 한 문자 집합을 여러 문자 인코딩에서 쓸 수도 있다. 특히 집합 안의 문자들에 음수가 아닌 정수들을 배정한 것을 부호화된 문자 집합(coded character set, CCS)라 한다. 문자 집합은 ASCII와 같이 더 이상의 문자가 추가될 수 없기도 하고, [[유니코드]]와 같이 문자가 계속 추가될 수 있기도 하다.

일반적으로 문자 집합과 문자 인코딩은 어떤 문자를 사용할 수 있으며 어떤 식으로 표현되는지를 나타낸다는 데서 동의어로 취급되기도 한다. 역사적인 이유로 [[MIME]]이나 그에 기반한 시스템은 문자 집합("charset")을 문자 인코딩을 나타내는 데 사용한다.

'''문자 인코딩 형태'''(character encoding form, CEF)는 특정한 문자 집합 안의 문자들을 컴퓨터 시스템에서 사용할 목적으로 일정한 범위 안의 정수(코드값)들로 변환하는 방법이다. 여기에는 유니코드 코드 포인트를 8비트 숫자의 집합으로 나타내는 [[UTF-8]]이나, 16비트 숫자의 집합으로 나타내는 [[UTF-16]], 그리고 대부분의 일반적인 문자 인코딩들이 포함된다.

'''문자 인코딩 구조'''(character encoding scheme, CES)는 문자 인코딩 형태로 변환된 코드값을 [[옥텟 (컴퓨팅)|옥텟]] 기반의 시스템에서 사용하기 위하여 옥텟들로 변환하는 방법이다. 대부분의 문자 인코딩 형태는 이 과정에서 아무런 일도 일어 나지 않으며, 8비트 이상의 숫자를 사용하는 UTF-16과 같은 문자 인코딩 형태의 경우 [[엔디안]]을 지정해 주는 것으로 충분하다. 여기에는 [[ISO 2022]]와 같은 복합 인코딩이나, [[SCSU]]와 같은 압축 방법 등이 속한다.

==퍼센트 인코딩==
{{본문|퍼센트 인코딩}}
퍼센트 인코딩(percent-encoding)은 URL에 문자를 표현하는 문자 인코딩 방법이다. 이 방법에 따르면 알파벳이나 숫자 등 몇몇 문자를 제외한 값은 옥텟 단위로 묶어서, 16진수 값으로 인코딩한다.

==문자깨짐 현상==
{{본문|문자깨짐}}
[[utf-8]]이나 [[euc-kr]]같은 서로 다른 문자 인코딩 방식은 텍스트나 문자의 깨짐 현상을 일으키는 주요 원인중 하나이다. 

== 같이 보기 ==
* [[:분류:문자 인코딩|문자 인코딩의 목록]]
* [[문자 집합]]([[:분류:문자 집합|문자 집합의 목록]])
* [[제어 문자]]
* [[코드 페이지]]

== 각주 ==
{{각주}}

== 외부 링크 ==
* {{언어링크|en}} [http://www.iana.org/assignments/character-sets Character sets registered by Internet Assigned Numbers Authority]
* {{언어링크|en}} [https://web.archive.org/web/20050323094939/http://www.unicode.org/unicode/reports/tr17/ Unicode Technical Report #17: Character Encoding Model]

{{문자 인코딩}}
{{타이포그래피 용어}}

{{전거 통제}}

[[분류:문자 인코딩|*]]