- VB6에서 문자는 내부적으로는 유니코드로 처리된다.
유니코드로 저장될때는 영문이던, 한글이던 어떤 문자가 저장될 때는 2바이트가 필요하다.
유니코드가 메모리에 저장될때에는 바이트 순서가 바뀌어서 저장된다.(8086 계열)
"가"라는 문자가 저장된다고 할때. "가"에 문자의 유니코드는 &HAC00이다. 이것이 메모리에 저장될때는
첫번째 바이트에 &h00이 두번째 바이트에는 &hAC가 저장된다.
기본 내장함수 asc와 ascb와 ascw의 차이점을 보면
-asc에서 인수에 전달한 값은 유니코드로 간주하며 주어진 인수의 2바이트를 ANSI 문자로 바꾸어 그 코드를 반환한다.
즉, asc("가")를 하게 되면 "가"에 대한 유니코드 값이 반환 되는 것이 아니라 "가"에 대한 ANSI 코드가 반환단다. - ascb는 주어진 인수가 유니코드인지 ANSI 코드 인지 관계없이 메모리에 저장된 첫번째 바이트 값을 반환한다.
즉 ascb("가")를 하개 되면 &h00이 반환된다. - ascw는 주어진 인수가 유니코드라고 간주하고 인수의 2바이트 값을 얻은후에 서로 위치를 바꾼후의 값을 반환한다.
ascw("가")를 하게 되면 &HAC00이 반환된다. - 한가지 더, midb도 마찬가지로 현재 메모리에 저장된 순으로 값을 가져온다.
'VB6' 카테고리의 다른 글
시리얼 포트 에물레이터 (0) | 2011.10.02 |
---|---|
수치 출력시 모자란 자릿수 다른 문자로 채우기 (0) | 2011.10.01 |
엑셀 참조 사용시 98번 에러 (0) | 2011.09.27 |
사용자 정의 컨트롤에 AsyncRead 메소드를 사용한 파일 다운로드 및 진행율 표시 (0) | 2011.09.25 |
ActiveX DLL 프로젝트와 EXE 프로젝트를 같은 그룹 프로젝트에 추가하면 (0) | 2011.09.20 |