윈도우에서의 유니코드.

Slides:



Advertisements
Similar presentations
Chapter 04 컴퓨터에서 데이터 표현. 04 컴퓨터에서 데이터 표현 2 인코딩 (encoding) – 현실세계의 정보를 컴퓨터 내부에서 처리할 수 있는 이진수로 변환하는 방법 1. 컴퓨터 속에서 데이터 표현 원리 0 - 아빠 1 - 엄마 00 - 아빠 01 - 엄마.
Advertisements

자료의 표현 1. 문자 자료의 표현 2. 멀티미디어 자료의 표현. 컴퓨터일반자료의 표현 학습 목표 ◆ 컴퓨터에서 사용하는 문자 데이터의 표현 방법을 이해할 수 있다. ◆ 컴퓨터에서 사용하는 멀티미디어 데 이터의 표현 방법을 설명할 수 있다.
문자코드 1 박 2 일 (4 조 ) 이경도 이준집 이수연 엄태규. 문자코드란 ? 문자나 기호를 컴퓨터로 다루기 위하여, 문자나 기호 하나하나에 할당 시키는 고유의 숫자를 말하는 것이다.
Format String Attack! 포맷 스트링 공격 경일대학교 사이버보안학과 학년 남주호.
조원 : 김영재(코딩) 이지영(스토리) 임병욱(그래픽)
순천향대학교 정보보호연구회 김 홍 기 포인터와 문자열 순천향대학교 정보보호연구회 김 홍 기
2007 1학기 12 배열.
제12장 표준 입출력과 파일 입출력.
Power C++ 제6장 포인터와 문자열.
배열(Array) 선린인터넷고등학교 정보통신과 유 순 옥.
8. 배열.
C 프로그래밍 소개 숙명여대 창병모 2011 가을.
제1장 코드와라이브러리 Page 1 ~ 30 ■■■■■ ■ ■.
C++ 프로그래밍 년 2학기 전자정보공학대학 컴퓨터공학부.
제3장 추가 실습 3장 관련 C 언어 프로그래밍 실습.
C 10장. 함수의 활용 #include <stdio.h> int main(void) { int num;
쉽게 풀어쓴 C언어 Express 제18장 입출력과 라이브러리 함수 C Express.
데이터 파일 C 데이터 파일과 스트림(Stream) 텍스트 파일 처리
ProFrame Utility Template 사용법
쉽게 풀어쓴 C언어 Express 제16장 파일 입출력 C Express Slide 1 (of 23)
제15장 파일 입출력 문자열을 출력하는 여러가지 방법 (15-2쪽) 문자열만 처리하는 입출력 함수
Chapter 13 문자 데이터와 문자열 문자 데이터 문자열.
10장 메모리 관리.
MFC Console Application
C 7장. 배열과 문자열 #include <stdio.h> int main(void) { int num;
21장. 문자와 문자열 처리 함수.
10장 포인터와 문자열 포인터 기본 배열과 포인터 매개변수 전달방법 포인터와 문자열.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
26. 매크로와 전처리기.
Part 04 입출력과 전처리 ©우균, 창병모 이 슬라이드는 부산대학교 우균이 작성하였습니다. 오류나 수정할 사항 있으면 연락 주세요.
12장 파일처리와 매크로 파일 입출력 함수 문자 입출력 함수 라인 입출력 함수 불록 입출력 함수 매크로.
UTF ENCODING (UTF-8,16,32) 발표자 - 김규호.
Chapter 11 Strings.
C언어 프로그래밍의 이해 Ch14. 파일 입출력.
11 표준 입출력과 파일 입출력 데이터를 읽고 쓰는 다양한 방법 익히기!.
6장. printf와 scanf 함수에 대한 고찰
13장 고급 입출력 함수 박사 4학기 최 성자.
TCP/IP Socket Programming…
14장. 포인터와 함수에 대한 이해.
17장. 문자열 01_ 문자열 사용의 기본 02_ 문자열의 사용.
C++ 프로그래밍 년 2학기 전자정보공학대학 컴퓨터공학부.
-Part3- 제2장 문자열 표준 함수와 기타 표준 함수
11장. 1차원 배열.
제 11 장 전처리기.
2장 표준 입출력 표준 입출력 함수의 종류 형식화된 입출력 문자 입출력 문자열 입출력.
C언어 프로그래밍의 이해 Ch13. 선행처리기와 주석문.
Chapter 10 Strings and Pointers
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 11. 1차원 배열.
☆ASCII☆ 김연주.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 05. 상수와 기본 자료형.
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
Chapter 05. 입출력 함수.
C언어 (8) 정명희.
문자코드 조사 정리 불우이웃 조.
제 7장 배열과 포인터 Hello!! C 언어 강성호 김학배 최우영.
리더 : 이동주 스토리 : 김현 그래픽 : 최혁진 코딩 : 최재근
구조체(struct)와 공용체(union)
실습과제 (변수와 자료형, ) 1. 다음 작업 (가), (나), (다)를 수행하는 프로그램 작성
제 29 강 스트링(string) 다루기 s a i s . s T i h t g r i n.
개정판 누구나 즐기는 C언어 콘서트 제10장 문자열 출처: pixabay.
C 13장. 입출력 라이브러리 #include <stdio.h> int main(void) { int num;
실습과제 1번 배열 크기 : 8 문자열 길이 : 7 // MBCS 예제: 출력 결과 이해하기
Chapter 09. 배열.
13. 포인터와 배열! 함께 이해하기.
어서와 C언어는 처음이지 제22장.
배열, 포인터, 함수 Review & 과제 1, 2.
배열.
2019 2학기 9장 배열과 포인터 1. 주소, 주소연산자(&) 2. 포인터, 역참조연산자(*) 3. 배열과 포인터.
Presentation transcript:

윈도우에서의 유니코드

4. 문자 표현 (기초프로그래밍 복습) 4.1 아스키 코드 ASCII 코드(American Standard Code for Information Interchange) 미국표준협회(ANSI)가 제정한 데이터처리 및 통신 표준 코드 표현할 수 있는 문자는 128(27)개 확장 아스키 코드: 7비트로는 다양한 문자를 표현하기 어려워 8비트로 확장

4. 문자 표현 (기초프로그래밍 복습) 4.2 유니코드 전 세계의 언어를 일관된 방법으로 표현하고 다룰 수 있는 국제적인 문자 코드 규약 문자 하나를 2바이트 이상으로 표현, 65,536(216)개 이상의 문자와 기호를 나타냄 인코딩 방식은 UTF-8, UTF-16, UTF-32

문자셋의 종류와 특성 SBCS(Single Byte Character Set) 문자를 표현하는데 1바이트 사용 아스키 코드 MBCS(Multi Byte Character Set) 한글은 2바이트, 영문은 1바이트 사용 WBCS(Wide Byte Character Set) 문자를 표현하는데 2바이트 이상 사용 유니코드

MBCS 예제 #include <stdio.h> #include <string.h> int main() { char str[] = "ABC한글"; int size = sizeof(str); int len = strlen(str); printf("배열 크기 : %d \n", size); printf("문자열 길이 : %d \n", len); } 배열 크기 : 8 문자열 길이 : 7 실행결과

WBCS 기반의 프로그래밍 WBCS를 위한 두가지 WBCS 기반 문자열 선언 예 첫째: char를 대신하는 wchar_t 둘째: “ABC”를 대신하는 L“ABC” WBCS 기반 문자열 선언 예 wchar_t str[] = L“ABC”;

문자열 조작함수 SBCS 함수 WBCS 기반의 문자열 조작 함수 strlen size_t wcslen (const wchar_t* string); strcpy wchar_t* wcscpy (wchar_t* dest, const wchar_t* src); strncpy wchar_t* wcsncpy (wchar_t* dest, const wchar_t* src, size_t cnt); strcat wchar_t* wcscat (wchar_t* dest, const wchar_t* src); strncat wchar_t* wcsncat (wchar_t* dest, const wchar_t* src, size_t cnt); strcmp int wcscmp (const wchar_t* s1, const wchar_t* s2); strncmp int wcsncmp (const wchar_t* s1, const wchar_t* s2, size_t cnt);

문자열 입출력 함수 SBCS 함수 WBCS 기반의 문자열 입출력 함수 printf int wprintf (const wchar_t* format [, argument]...); scanf int wscanf (const wchar_t* format [,argument]...); fgets wchar_t* fgetws (wchar_t* string, int n, FILE* stream); fputs int fputws (const wchar_t* string, FILE* stream);

WBCS 예제 #include <stdio.h> #include <string.h> int wmain(void) { wchar_t str[] = L"ABC"; int size = sizeof(str); int len = wcslen(str); wprintf(L"배열 크기 : %d \n", size); wprintf(L"문자열 길이 : %d \n", len); } 배열 크기 : 8 문자열 길이 : 3 실행결과

헤더파일 windows.h Windows 정의 자료형 typedef char CHAR; typedef wchar_t WCHAR; #define CONST const typedef CHAR * LPSTR; typedef CONST CHAR * LPCSTR; typedef WCHAR * LPWSTR; typedef CONST WCHAR * LPCWSTR;

SBCS와 WBCS 예제 #include <stdio.h> #include <windows.h> int wmain() { LPSTR str1 = "SBCS String"; LPWSTR str2 = L"WBCS String"; CHAR arr1[] = "SBCS String"; WCHAR arr2[] = L"WBCS String"; printf("%s\n", str1); printf("%s\n", arr1); wprintf("%s\n", str2); wprintf("%s\n", arr2); }

MBCS와 WBCS 동시 지원 매크로 #ifdef UNICODE typedef WCHAR TCHAR; typedef LPWSTR LPTSTR; typedef LPCWSTR LPCTSTR; #else typedef CHAR TCHAR; typedef LPSTR LPTSTR; typedef LPCSTR LPCTSTR; #endif

MBCS와 WBCS 동시 지원 매크로 #ifdef UNICODE #define __T(x) L ## x #else #define __T(x) x #endif   #define _T(x) __T(x) #define _TEXT(x) __T(x)

MBCS와 WBCS 동시 지원 함수 #ifdef UNICODE #define _tmain wmain #define _tcslen wcslen #define _tprintf wprintf #define _tscanf wscanf #else #define _tmain main #define _tcslen strlen #define _tprintf printf #define _tscanf scanf #endif

MBCS와 WBCS 동시 지원 예제 #define UNICODE #define _UNICODE #include <stdio.h> #include <tchar.h> #include <windows.h> int _tmain() { LPTSTR str1 = _T("MBCS or WBCS String"); TCHAR arr1[100]; _tprintf(_T("string size: %d\n"), sizeof(str1)); _tscanf(_T("입력: %s"), arr1); _tprintf(_T("출력: %s\n"), arr1); }