프로그래밍/C++

#15. UTF & ASCII

코딩하는상후니 2022. 7. 16. 22:02

 
*char
=> 정수지만 '문자' 의미를 나타내기 위해 사용
 
char  :  알파벳  /  숫자 문자를 나타냄.
wchar_t  :  유니코드 문자를 나타냄.
 
ASCII  (  American Standard Code for Information Interchange )
 
char ch = 97;
char ch = 'a'
char ch 2 = '1'
 

 
'유니코드' ( unicode )
=> 전 세계 모든 문자에 대해 유일 코드를 부여한 것
=> 유니코드에서 가장 많은 번호를 차지하는게 한국어/중국어~ (뚥쿩웱)
=> 유니코드는 표기 방식이 여러가지가 있는데 대표적으로 UTF8 / UTF16
 
 
*UTF8
=> 알파벳, 숫자 1바이트 ( ASCII 동일한 번호 )
=> 유럽 지역의 문자는 2바이트
=> 한글, 한자 등 3바이트
장점  :  영어 권 같은 경우 데이터를 적게 쓸 수 있다.
 
*UTF16
=> 알파벳, 숫자, 한글, 한자 등 거의 대부분 문자 2바이트
=> 매~~우 예외적인 고대 문자만 4바이트 ( 사실상 무시해도 됨. )
장점  :  거의 대부분 고정사이즈 2바이트
 
 
*wchar_t wch = L'안';
=> 유니코드라는 것을 확실하게 하기 위해 L 을 붙여줌. ( wchar_t 로 캐스팅 )
cout << wch << endl;
=> ERROR !!
=> cout 은 char 전용..
 
//wchar_t wch = L'안';
//wchar_t wch = 0xc548;
wchar_t wch = 50504;
 
wchar_t wch = L'안';  =  wchar_t wch = 0xc548;
wcout.imbue(locale("kor"));  // 한국어로 인식해줘라.
wcout << wch << endl;
 

 
*Escape Sequence
=> 표기하기 애매한 애들을 표현
 
\t   :  아스키코드9 = Tab
\n  :  아스키코드 10 = LineFeed ( 한줄아래로 )
\r   :   아스키코드 13 = CarriageReturn  (  커서 << )
 

 
*문자열
=> 정수 ( 1 ~ 8 바이트 ) 고정 길이로
=> 끝은 NULL ( 0 ) ( = '\0' )
 
char str[] = { 'h', 'e', 'l', 'l', 'o', '\0'};
cout << str << endl;
=> '마지막 에 꼭 백슬레시 0
=> '\0' 을 붙여주어야 함 => 끝을 알리는 역할
 
char str[] = { 'h', 'e', 'l', 'l', 'o', '\0'};
char str2[] = "HelloWorld";
wchar_t str2[] = L"HelloWorld";
cout << str << endl;
cout << str2 << endl;
 

본 내용은 인프런의 루키스님 강의를 듣고 정리한 내용입니다.

'프로그래밍 > C++' 카테고리의 다른 글

#17. 비교 연산과 논리 연산  (0) 2022.07.16
#16. 산술 연산  (0) 2022.07.16
#14. 부동소수점 & boolean  (0) 2022.07.16
#13. 정수  (0) 2022.07.16
#12. 스택 메모리 & 스택 프레임 ( Stack Frame )  (0) 2022.07.15