-
character sets정리필요2 2008. 7. 10. 22:53character sets (문자셋)
1. Character Sets(문자셋)
*문자셋의 정의 : 문자들의 집합, 약속된 문자의 표현방법
[포괄적의미]
*아스키코드(ASCII CODE)
- 미국에서 정의하는 표준
- 알파벳의 갯수 26에다 몇몇 확장 문자를 추가혀여 표현
- 총 256개를 넘지 않음.
- 1BYTE 문자열 256가지의 문자열
*유니코드(UNICODE)
- 컴퓨터에서 세계 각국의 언어를 통일된 방법으로 표현할수 있게 제안된 국제적인 문자코드 규약
- 2BYTE로 나타내는 문자열. 종류가 256*256 = 65536개에 다함
[명시적의미]
*SBCS(Single Byte Character Set)
- 문자열을 표현하는데 1byte만을 사용
- 아스키코드는 일반적인 SBCS 방식
*MBSC(Multi Byte Character Set)
- 어떤문자는 1byte, 어떤 문자는 2byte로 표현
- MBSC는 SBSC를 포함
- 대부분의 문자는 2byte로 처리하나 아스키 코드에서 정의하고 있는
문자를 표현할때는 1byte로 표현
*WBSC(Wide Byte Character Set)
- 유니코드가 일반적인 WBSC 방식
- 모든 문자를 2BYTE로 처리
2. SBCS, WBCS 문자열 조작 함수
// typedef unsigned int size_t;
char <--> wchar_t
strlen <--> sizeo_t wcslen( const wchar_t* string);
strcpy <--> wchar_t* wscpy( wchar_t* dest, const wchar_t* src);
strncpy <--> wchar_t* wcsncpy( wchar_t* dest, const wchar_t* str, size_t cnt);
strcat <--> wchar_t* wcscat( wchar_t* dest, const wchar_t* str);
strncat <--> wchar_t* wcsncat( wchar_t* dest, const wchar_t* str, size_t cnt);
strcmp <--> int wcscmp(const wchar_t* s1, const wchar_t* s2);
strncmp <--> int wcscncmp(const wchar_t* s1, const wchar_t* s2, size_t cnt);
3. SBCS, WBCS 문자열 입.출력 함수
printf <--> int wprintf(const wchar_t* format[, argument]...);
scanf <--> int wsacnaf(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);
4. 윈도우에서 정의 하는 자료형
typedef char CHAR;
typedef wchar WCHAR;
#define CONST const
typdef CHAR* <--> LPSTR;
typdef CONST CHAR* <--> LPCSTR;typdef WHCAR* <--> LPWSTR;
typdef CONST WCHAR* <--> LPCWSTR;
5. MBCS와 WBCS(유니코드)를 동시에 지원하기 위한 매크로
typdef CHAR* <--> LPSTR;
typdef CONST CHAR* <--> LPCSTR;typdef WHCAR* <--> LPWSTR;
typdef CONST WCHAR* <--> LPCWSTR;#ifdef UNICODE // _UNICODE
typedef WCHAR <--> TCHAR;
typedef LPWSTR <--> LPTSTR;
typedef LPCWSTR <--> LPCTSTR;
#else
typedef CHAR <--> TCHAR;
typedef LPSTR <--> LPTSTR;
typedef LPCSTR <--> LPCTSTR;
#endif;
[출처] character sets(문자셋)|작성자 이칼국수