알트 입력법

알트 키숫자키패드를 이용하여 문자(특히 특수문자)를 입력하는 방식. 키보드에 할당되지 않은 문자를 입력하는 데 유용하며, 종종 유일한 방법이 된다. 영어로 ‘Alt code’라는 표현이 쓰이는데, 이 표현이 추상적인 문자 입력 방식 자체를 일컫는 것인지, 그 방식을 이용하기 위한 키 시퀀스를 일컫는 것인지 명확하지 않다. 문서를 만들어 설명할 만한 것은 전자이므로, 항목명을 “알트 입력법”으로 하였다.

1 역사

이 기능은 IBM PC가 그 시초라고 한다.[1] IBM PC에서 알트 키를 누른 채로 십진법으로 숫자를 입력하면, 시스템 바이오스는 대응하는 코드를 키보드 버퍼에 넣는다. 다시 말하면, 이 바이오스로 문자를 입력받는 소프트웨어 입장에서는 어떤 키를 하나 띡 누른 결과 그 코드가 입력된 것인 양 인식한다. 따라서 소프트웨어는 이를 코드페이지에 따라 변환한 문자를 화면에 출력하는데, 이것이 알트 입력법의 기초가 되었다. 이 때 코드페이지는 다른 소프트웨어가 없는 한 하드웨어 코드페이지, 즉 다름아닌 코드페이지 437(아스키 코드가 아니다)이다. 이후 도스 등의 운영체제가 쓰이게 되면서 알트 입력법은 좀 더 대중화된다.

윈도우로 넘어오면서 코드페이지 Windows-1252(서유럽어) 등 이른바 ANSI 코드페이지들이 사용되기 시작했지만, 도스 시절의 코드값이 워낙 널리 알려진 탓에 알트 입력법에서만큼은 원칙적으로 옛날 코드페이지(즉 코드페이지 437)를 고수하게 된다. 그러나 위 ANSI 코드페이지나 유니코드를 이용한 입력 역시, 후술하듯 약간의 우회를 요하나, 허용하고 있다.

마이크로소프트 외의 운영체제에서는 작동하지 않는다는 듯하다. 추가바람

2 사용법

알트 키를 누른 로, 입력하려는 문자에 해당하는 값을 누른 다음, 알트 키에서 손을 떼면 된다.

예) [Alt]를 누른 채로, 숫자키패드의 [1] [3] [3]을 차례로 누른 다음, 알트키에서 손을 뗀다.

이렇게 하면 코드 133에 해당하는 문자가 나타나는데(한국어 운영체제에서는 말줄임표(…, U+2026)), 이를 줄여서 Alt+133과 같이 표기한다.
‘해당하는 값’은 아스키 코드라고 흔히 잘못 알려져 있는데, 전술했듯 원칙적으로 현재 코드페이지에서의 값이고,[2] 유니코드를 이용하는 것도 가능하다.
어느 쪽을 이용하느냐에 따라 입력 방식이 다소 다르다.

2.1 원칙적인 입력법(코드페이지 이용)

알트 키를 누른 채로, 입력하려는 문자에 해당하는 코드페이지에서의 값을 숫자키패드를 이용하여 10진법으로 입력한다.
코드페이지는 언어에 따라 다르다.

예) Alt+133 → … (U+2026)

2.1.1 한국어 운영체제의 경우

한국어 윈도우의 경우 원칙적으로 코드페이지 949를 따른다.코드페이지 949 일람[3] 그러나 일부 코드는 Windows-1252를 따른다.
구체적으로 아래와 같다. 코드값은 편의상 16진수로 적었다.

  • 0x00~0x1F는 다음 아홉 개 외에는 입력되지 않는다.
    • 0x08, 0x09, 0x0A, 0x0D, 0x16, 0x1A, 0x1B, 0x1E, 0x1F.
  • 0x80~0xFE는 Windows-1252를 따른다.[4] 따라서 후술하는 영어 운영체제의 경우에 0을 붙여야 하는 경우라도 0을 붙일 필요가 없다.
    • 그런데 아래아한글에서는 왠지 0x89(‰, U+2030)와 0x91(‹, U+2039)이 각각 숫자 0과 9로 입력된다.
  • 코드가 할당되지 않은 값을 입력한 경우
    • 0x0100과 0x7FFF 사이의 값을 입력한 경우, 첫 바이트(16진수 두 자리)의 값에 따라 작동한다.
예) Alt+12345 = 0x3039 ⇒ 0x30 = 0
  • 0xFFFF보다 큰 값을 입력한 경우, 65536(0x10000)으로 나눈 나머지(즉, 마지막 두 바이트)에 따라 작동한다.
예) Alt+123123 = 0x1E0F3 ⇒ 0xE0F3 = 姓[5]
  • 위 두 가지 중 어느 하나에도 해당하지 않는 경우[6] 물음표(?, U+003F)가 입력되는 듯하다.
2.1.1.1 유용한 코드의 보기
문자코드다른 입력법사용처
Alt+133ㄱ+한자+PgDnPgDn+1말줄임표
ßAlt+223ㄲ+한자+PgDnPgDn+5독일어
äAlt+228-
öAlt+246
üAlt+252
æAlt+230ㄲ+한자+PgDn+3국제음성기호, 라틴어
çAlt+231-국제음성기호, 프랑스어
èAlt+232프랑스어, 이탈리아어
éAlt+233
ðAlt+240ㄲ+한자+PgDn+5국제음성기호
øAlt+248ㄲ+한자+PgDnPgDn+3

여기로 들어가면 입력할 수 있는 모든 기호를 볼 수 있다.미완성 안습

2.1.2 영어 운영체제의 경우

영어 윈도우의 경우 원칙적으로 코드페이지 437(소위 OEM 코드페이지)를 따른다.

예) Alt+161 → í (Latin small letter I with acute, U+00ED)
  • 다만, 0으로 시작하는 코드의 경우 Windows-1252(소위 ANSI 코드페이지)를 따른다. 링크 참조.
예) Alt+0161 → ¡ (Inverted exclamation mark, U+00A1)

2.2 유니코드 이용 입력법

먼저 준비가 필요하다.

2.2.1 사용 준비

시스템 레지스트리를 건드려야 한다. 익숙하지 않을 경우, 시도하지 않는 것을 권장한다.

  • 실행(Win+R) 창에 regedit 입력. 레지스트리 편집기 창이 뜬다.
  • HKCU\Control Panel\Input Method 아래에 EnableHexNumpad라는 을 REG_SZ 형식으로 새로 만든다. 가끔 를 새로 만들라는 문서가 있는데, 잘못된 것이다. 키가 아니고 값이다. 참고로 폴더처럼 생긴 게 ‘키’, 파일처럼 생긴 게 ‘값’. 사실 편집(E)>새로 만들기(N)>문자열 값(S) 하면 된다.
  • 값 데이터는 1을 넣는다.
  • 로그오프한 후 다시 로그온한다. 혹은 재부팅한다.

2.2.2 입력 방법

알트 키를 누른 채로, 숫자키패드의 +버튼을 누른 다음 입력하려는 문자의 유니코드 값을 16진법으로 입력한다.

예) Alt+[+][2][0][1][3] → – (En Dash, U+2013)

16진법으로 입력할 때는, 0~9의 자릿수는 숫자키패드로, A~F의 자릿수는 대소문자 관계 없이 일반 키패드로 입력하면 된다.

키 시퀀스를 나타내는 표준적인 표기법은 없는 듯하다.Alt++2013으로 적긴 뭣하고 C++? 아래에서 Alt+[+]2013과 같이 표기한다.

2.2.3 유용한 코드의 보기

문자코드다른 입력법사용처
ŋAlt+[+]14Bㄲ+한자+PgDnPgDn+8국제음성기호
œAlt+[+]153ㄲ+한자+PgDnPgDn+4
ʃAlt+[+]283-
ʒAlt+[+]292
ːAlt+[+]2D0

(엔대시)
Alt+[+]2013문장부호

(엠대시)
Alt+[+]2014
  1. [1] 참조.
  2. 물론 웬만한 코드페이지는 0x20~0x7E에서 아스키 코드와 일치한다.
  3. 엑셀에서 CODE 함수를 사용하면 코드페이지 949에서의 코드값을 알 수 있다.
  4. 참고로 코드페이지 949과 Windows-1252는 0x00~0x7F에서 일치한다. 궁극적으로는 0x00~0x7E에서 아스키 코드와 일치.
  5. 링크 참조.
  6. 예를 들어 65536으로 나눈 나머지가 0x{80~FF}{00~3F}인 코드 등.