ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Windows Programming] μΈμ½”λ”©μ΄λž€?ANSI, ASCII, μœ λ‹ˆμ½”λ“œ, λ©€ν‹°λ°”μ΄νŠΈ
    Windows Programming 2020. 1. 19. 14:55
    λ°˜μ‘ν˜•
    • 이 글은 μ œν”„λ¦¬ 리처의 "Windows via C/C++"을 ν† λŒ€λ‘œ μž‘μ„±ν•˜μ˜€μŠ΅λ‹ˆλ‹€



    λ§ˆμ΄ν¬λ‘œμ†Œν”„νŠΈ μœˆλ„μš°κ°€ 점점 더 λ²”μš©ν™”λ¨μ— 따라 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ κ°œλ°œμžλ“€μ—κ²Œ λ‹€μ–‘ν•œ κ΅­μ œν™” μ‹œμž₯에 λŒ€ν•œ μ€‘μš”μ„±μ΄ μ¦λŒ€ν•˜κ³  μžˆλ‹€. 지역화λ₯Ό μœ„ν•΄ μœ λ‹ˆμ½”λ“œλ₯Ό μ‚¬μš©ν•˜κ³  μžˆλŠ”λ° μœ λ‹ˆμ½”λ“œκ°€ 무엇인지, λ©€ν‹°λ°”μ΄νŠΈ, ANSI λ“± λ‹€μ–‘ν•œ 인코딩 방식에 λŒ€ν•΄ μ†Œκ°œν•˜λ €κ³  ν•œλ‹€.


    인코딩

    μΈμ½”λ”©μ΄λž€ μ‚¬λžŒμ΄ μ•Œκ³  μžˆλŠ” μ–Έμ–΄λ₯Ό 컴퓨터가 μ‚¬μš©ν•˜λŠ” 0κ³Ό 1 같은 이진 μ½”λ“œλ‘œ λ³€ν™˜ν•˜λŠ” 과정을 인코딩이라고 ν•œλ‹€.

     

    ASCII

    μ˜μ–΄μ— ν•œμ—μ„œ μ˜μ–΄λ¬Έμžλ₯Ό μΈμ½”λ”©ν•˜λŠ” 방식을 λ§ν•œλ‹€. λŒ€λΆ€λΆ„μ˜ 개발자라면 많이 λ“€μ–΄λ΄€μ„λ§Œν•œ 인코딩이고 λ¬Έμžμ—΄μ„ 크기 비ꡐλ₯Ό μ‚¬μš©ν•  λ•Œλ„ ASCII μ½”λ“œλ₯Ό 보고 λΉ„κ΅ν•œλ‹€.
    ASCII(7bit) : 128 개의 문자λ₯Ό ν‘œν˜„ν•œλ‹€.

    ANSI

    λ§ˆμ΄ν¬λ‘œμ†Œν”„νŠΈλŠ” μ „ 세계 μ–Έμ–΄λ₯Ό ν‘œκΈ°ν•˜κΈ° μœ„ν•΄ ASCIIμ½”λ“œλ‘œλŠ” ν•œκ³„λ₯Ό 느꼈고 지역화λ₯Ό μœ„ν•΄ ASCIIμ½”λ“œμ— Codepage λΉ„νŠΈλ₯Ό 더해 λ‹€μ–‘ν•œ μ–Έμ–΄λ₯Ό ν‘œκΈ°ν•˜λŠ” 인코딩 방식을 λ§ν•œλ‹€.
    ASCII(7bit) + CodePage(1bit) : 256개의 문자λ₯Ό ν‘œν˜„ν•˜κ³  Codepage둜 λ‚˜λΌλ§ˆλ‹€ μ •ν•œ λΉ„νŠΈκ°€ μžˆλ‹€.

     

    λ©€ν‹°λ°”μ΄νŠΈ

    μ•„μŠ€ν‚€ μ½”λ“œλŠ” 1byte이닀. 이 μ½”λ“œμ— λ‹€λ₯Έ λ¬Έμžλ“€(2byte)λ₯Ό ν•©μ³μ„œ ν¬ν•¨ν•œ 문자 집합을 λ©€ν‹°λ°”μ΄νŠΈ 문자 집합이닀.
    예λ₯Ό λ“€μ–΄ "abcν•œκ΅­" 이 문자의 byteμˆ˜λŠ” 7byteκ°€ λœλ‹€.

     

    μœ λ‹ˆμ½”λ“œ

    μ „ μ„Έκ³„μ˜ λͺ¨λ“  문자λ₯Ό ν‘œν˜„ν•˜λŠ” λ°©λ²•μœΌλ‘œ λͺ¨λ“  μ–Έμ–΄λ₯Ό 2byte둜 ν‘œν˜„ν•˜λŠ” μ½”λ“œμ΄λ‹€. 즉, λͺ¨λ“  문자λ₯Ό 2byte 숫자둜 1:1 λ§€ν•‘μ‹œν‚¨ ν˜•νƒœμ˜ μ½”λ“œλΌκ³  μƒκ°ν•˜λ©΄ λœλ‹€.

    <μœ λ‹ˆμ½”λ“œ 인코딩 방식>

    • UTF-8 : μ˜μ–΄λŠ” 1byte, 유럽 및 쀑동 지역 2byte, ν•œκΈ€ 3byte λ“± ν•˜λ‚˜μ˜ 문자λ₯Ό 1~4λ°”μ΄νŠΈλ‘œ 인코딩을 μˆ˜ν–‰ν•œλ‹€.
      λͺ¨λ“  언어에 따라 인코딩 ν•˜λŠ” 방식이 λ‹€λ₯΄λ―€λ‘œ 문자 λ³€ν™˜ μ•Œκ³ λ¦¬μ¦˜μ΄ λ³΅μž‘ν•˜λ‹€.

    • UTF-32 : λͺ¨λ“  문자λ₯Ό 4byte둜 인코딩을 μˆ˜ν–‰ν•˜μ—¬ 문자 λ³€ν™˜ μ•Œκ³ λ¦¬μ¦˜μ„ κ°„λ‹¨ν•˜κ²Œ λ§Œλ“€μ—ˆλ‹€. ν•˜μ§€λ§Œ λ©”λͺ¨λ¦¬ 효율 μΈ‘λ©΄μ—μ„œ 맀우 λΉ„νš¨μœ¨μ μ΄λ―€λ‘œ 파일 μ €μž₯μ΄λ‚˜ λ„€νŠΈμ›Œν¬ 전솑 λ°©μ‹μ—λŠ” μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€.

    • UTF-16 : 곡간 μ ˆμ•½κ³Ό μ½”λ”©μ˜ νŽΈμ˜μ„± μ‚¬μ΄μ˜ μ μ ˆν•œ μ ˆμΆ©ν•œμœΌλ‘œ λ³Ό 수 μžˆλ‹€.



    • μΆ”κ°€λ‘œ κΆκΈˆν•œ μ‚¬ν•­μ΄λ‚˜ μˆ˜μ •ν•  λΆ€λΆ„μžˆμœΌλ©΄ λŒ“κΈ€ λ‚¨κ²¨μ£Όμ„Έμš”
    λ°˜μ‘ν˜•
Designed by Tistory.