구분선 전까지는 본 내용에 들어가기에 앞서 알고 있으면 이해하는데 도움이 될 만한 내용을 먼저 설명이다. 알고 있으면 복습겸 한번 슥 읽고 넘어가자.
ASCII란?
- American Standard Code for Information Interchange의 약자
- 알파벳, 숫자, 특수 문자에 고유의 숫자를 부여한 코드표로 7Bit 조합이라 128개의 문자를 표현한다.
- 1byte( = 8Bit ) 에서 첫 비트는 부호로 쓰고 나머지 7Bit으로 ASCII Table에 있는 모든 알파벳, 숫자, 특수 문자를 표현할 수 있다.
UTF란?
- Universal Coded Character Set + Transformation Format의 약자
- ASCII로는 세상에 존재하는 여러 언어를 표현할 수 없어서 만든 문자표
- 풀어서 해석하면
- 범용적으로 쓰이는 코드(부호)화 시킨 문자 집합 + 변환 형식
- 쉽게 말해, 세계 모든 언어와 기호에 코드값을 부여한 것이다.
- 여기서 쓰인 "코드"는 개발하면서 사용되는 java코드,python코드... 보다는 아래 이미지에서 설명하는 코드에 가깝다.

- UTF-8에서의 8은 8bit을 의미한다.
- 즉 , Universal Coded Character Set + Transformation Format - 8-bit 인 셈이다.
인코딩 종류의 공통점
- 1 ~ 127 까지는 Ascii 코드 값과 유니코드(UTF-8, UTF-16 등..), MS계열 코드(CP949, MS949 등..)의 인코딩(코드로 변환한) 값이 같다.
- ms계열 코드와 유니코드는 해당 범위에서 92번만 다른데 이는 " 역슬래시 "로 윈도우에서는 대부분 ' ₩ ' 으로 표현되고 맥북, 리눅스 계열에서는 ' \ '으로 표현된다.
인코딩 종류에 따른 차이점
- UTF-8
- 언어마다 글자당 사용 byte수가 다름
- 영어 : 1byte
- 한글 : 3byte
- ...
- UTF-16
- 거의 모든 언어가 2byte
자바의 String 처리 과정에서 사용되는 인코딩 종류
- 자바 내부적으로 메모리 상에 문자열 저장시 : UTF-16 사용
- 문자열 송,수신을 위한 직렬화에 사용되는 인코딩 : UTF-8 사용
- 문자열 입.출력시 아래 둘 중 하나 (내부 메모리 상에서 처리하는 것과는 다르다.)
- 기본 인코딩값
- 사용자 지정 인코딩 값
요약
- 과정
- 입력(UTF-8)
- 송수신(modified UTF-8)
- 자바 메모리 (UTF-16)
- 송수신(modified UTF-8)
- 출력(UTF-8)
- 즉, 운영체제 혹은 시스템에 설정되어있는 인코딩 형식으로 입력받으면 UTF-16 의 인코딩 규칙에 의해 인코딩되어 메모리에 올라가고,
- 출력하게 될 경우 메모리에 UTF-16 인코딩 규칙에 의해 저장되있는 값을 다시 운영체제 혹은 시스템에서 설정한 인코딩 형식으로 대응되는 문자를 출력하는 것이다.
사담 - "아스키 코드 값"의 오해
- 아스키코드 값과 여러 인코딩들( utf-8, ms949 등 )에서 1~127번 까지는 대응되는 문자가 같다.
- 여기서 파생되는 오해
- char에 문자를 저장하고 int로 형변환을 시키면 반환하는 값 == 아스키 코드 값(ASCII)
- 틀린 말은 아니지만 정답도 아니다. 이건 127번째 문자까지만 해당되는 부분 정답이다.
- 정확히는 파일 인코딩 형식의 10진수 값이 나온다고 하는 것이 올바르다.
출처 & 참고문헌
'CS' 카테고리의 다른 글
C언어의 컴파일 과정 (1) | 2023.12.22 |
---|---|
소켓이란? (0) | 2023.12.19 |
API (Application Programming Interface ) 개념 설명 (0) | 2023.06.21 |
추상클래스와 인터페이스 (0) | 2023.05.29 |
[프로그래밍 패러다임] - 함수형 프로그래밍 (2) | 2023.05.15 |
구분선 전까지는 본 내용에 들어가기에 앞서 알고 있으면 이해하는데 도움이 될 만한 내용을 먼저 설명이다. 알고 있으면 복습겸 한번 슥 읽고 넘어가자.
ASCII란?
- American Standard Code for Information Interchange의 약자
- 알파벳, 숫자, 특수 문자에 고유의 숫자를 부여한 코드표로 7Bit 조합이라 128개의 문자를 표현한다.
- 1byte( = 8Bit ) 에서 첫 비트는 부호로 쓰고 나머지 7Bit으로 ASCII Table에 있는 모든 알파벳, 숫자, 특수 문자를 표현할 수 있다.
UTF란?
- Universal Coded Character Set + Transformation Format의 약자
- ASCII로는 세상에 존재하는 여러 언어를 표현할 수 없어서 만든 문자표
- 풀어서 해석하면
- 범용적으로 쓰이는 코드(부호)화 시킨 문자 집합 + 변환 형식
- 쉽게 말해, 세계 모든 언어와 기호에 코드값을 부여한 것이다.
- 여기서 쓰인 "코드"는 개발하면서 사용되는 java코드,python코드... 보다는 아래 이미지에서 설명하는 코드에 가깝다.

- UTF-8에서의 8은 8bit을 의미한다.
- 즉 , Universal Coded Character Set + Transformation Format - 8-bit 인 셈이다.
인코딩 종류의 공통점
- 1 ~ 127 까지는 Ascii 코드 값과 유니코드(UTF-8, UTF-16 등..), MS계열 코드(CP949, MS949 등..)의 인코딩(코드로 변환한) 값이 같다.
- ms계열 코드와 유니코드는 해당 범위에서 92번만 다른데 이는 " 역슬래시 "로 윈도우에서는 대부분 ' ₩ ' 으로 표현되고 맥북, 리눅스 계열에서는 ' \ '으로 표현된다.
인코딩 종류에 따른 차이점
- UTF-8
- 언어마다 글자당 사용 byte수가 다름
- 영어 : 1byte
- 한글 : 3byte
- ...
- UTF-16
- 거의 모든 언어가 2byte
자바의 String 처리 과정에서 사용되는 인코딩 종류
- 자바 내부적으로 메모리 상에 문자열 저장시 : UTF-16 사용
- 문자열 송,수신을 위한 직렬화에 사용되는 인코딩 : UTF-8 사용
- 문자열 입.출력시 아래 둘 중 하나 (내부 메모리 상에서 처리하는 것과는 다르다.)
- 기본 인코딩값
- 사용자 지정 인코딩 값
요약
- 과정
- 입력(UTF-8)
- 송수신(modified UTF-8)
- 자바 메모리 (UTF-16)
- 송수신(modified UTF-8)
- 출력(UTF-8)
- 즉, 운영체제 혹은 시스템에 설정되어있는 인코딩 형식으로 입력받으면 UTF-16 의 인코딩 규칙에 의해 인코딩되어 메모리에 올라가고,
- 출력하게 될 경우 메모리에 UTF-16 인코딩 규칙에 의해 저장되있는 값을 다시 운영체제 혹은 시스템에서 설정한 인코딩 형식으로 대응되는 문자를 출력하는 것이다.
사담 - "아스키 코드 값"의 오해
- 아스키코드 값과 여러 인코딩들( utf-8, ms949 등 )에서 1~127번 까지는 대응되는 문자가 같다.
- 여기서 파생되는 오해
- char에 문자를 저장하고 int로 형변환을 시키면 반환하는 값 == 아스키 코드 값(ASCII)
- 틀린 말은 아니지만 정답도 아니다. 이건 127번째 문자까지만 해당되는 부분 정답이다.
- 정확히는 파일 인코딩 형식의 10진수 값이 나온다고 하는 것이 올바르다.
출처 & 참고문헌
'CS' 카테고리의 다른 글
C언어의 컴파일 과정 (1) | 2023.12.22 |
---|---|
소켓이란? (0) | 2023.12.19 |
API (Application Programming Interface ) 개념 설명 (0) | 2023.06.21 |
추상클래스와 인터페이스 (0) | 2023.05.29 |
[프로그래밍 패러다임] - 함수형 프로그래밍 (2) | 2023.05.15 |