DetailPage-MSS-KB

기술 자료

기술 자료: 145745 - 마지막 검토: 2003년 5월 7일 수요일 - 수정: 2.0

 

요약

년, 기본 프로그래머는 해당 Asc 사용한 및 Chr 함수를 액세스하고 조작하는 ASCII 문자 집합입니다. 기본 지원 운영 체제 및 응용 프로그램에서 유니코드 수용 등장으로 Asc 및 Chr 함수 향상된 버전의 필요성을 개발했습니다. 이 요구를 충족시키기 위해 Visual Basic 4.0 이상은 Windows AscB/ChrB 및 AscW/ChrW 함수를 포함합니다.

추가 정보

유니코드 숫자 형식으로 문자 인코딩에 대해 ANSI 표준 바꾸기 위해 설계된 표준입니다. ANSI 표준 각 문자를 나타내는 단일 바이트 경우에만 사용하기 때문에 다른 256 문자의 최대 수 있습니다. 영어 말하는 청중의 요구에 대한 충분한 것이지만, 전 세계 소프트웨어 시장을 고려할 때 짧은 속합니다. 유니코드 표준을 사용하여 각 문자를 두 바이트 표현됩니다. 그리고 65, 536개의 가능한 위치 포함되어 전체 유니코드 문자 집합입니다.

Microsoft Windows NT, Microsoft Windows 2000 및 Microsoft OLE 2.0 완전히 기반으로, 유니코드 및 Visual Basic 4.0 이상은 모든 문자열을 유니코드 형식으로 내부적으로 나타냅니다. AscW 및 ChrW 함수를 중 전체 범위의 유니코드 문자의 액세스를 허용합니다. 0에서 255 0에서 65,535 대신 인수를 지원하는 것을 제외하고는 이러한 함수는 원래 Asc 및 Chr 함수는 같은 방식으로 작동합니다. 많은 Visual Basic 개체 (예: 디버그 창 및 레이블과 텍스트 상자가 반환 있는 "?" 때 이러한 개체를 유니코드 문자 표시 방법을 알지 못합니다.

모든 문자열을 이제 내부적으로 유니코드 형식으로 표현되는 때문에 이진 데이터를 문자열로 나타낼 수 있도록 사용한 것과 같은 간단한 수 없습니다. 데이터를 문자열로 할당하려면 Chr 함수를 사용하여 동일한 동작을 전에 발생하지 않습니다. 예를 들면:
   stringvar = Chr(65)
				

1 바이트 65, 2 바이트 값이 있는 2바이트 긴 문자열 결과 값이 0 (문자 "A" 유니코드 표현이 있음) 있습니다. ANSI에서 유니코드로 변환하는 항상 이 경우 마찬가지로 두 번째 바이트는 0 값 가진 추가한 바로 수반될 있지 않은 것을 염두에 두어야 합니다. 예를 들어, 대부분의 130-159 범위에 있는 ANSI 문자 코드 완전히 다른 유니코드 값이 있습니다. ' Debug.Print AscW(Chr(130)) ' 실행을 시도하여 8218 값이 표시됩니다.

현재 Microsoft Windows에서 여러 바이트 엔터티 첫 번째 바이트를 최소 유효 연속된 바이트로 유의 증가합니다 의미입니다 약간의 endian 프로세서를 합니다. 이유는 유니코드 문자 "A" 내부적으로 다음과 같이 나타나는 설명합니다.
   -------------------
   |   65   |    0   |
   -------------------
     byte 0     byte 1
				

이러한 함수는 단일 바이트 수량 조작 허용하므로 어떤 Asc 및 Chr 함수를 사용하여 수행할 수 데 복제하도록 AscB 및 ChrB 함수는 사용할 수 있습니다. 이진 값을 65, 66, 67, 68 연속적으로 없는 4 바이트 문자열을 만약 Chr 함수를 사용하여 작동하지 않습니다. 대신 ChrB 함수를 사용해야 합니다. 예를 들면:
   stringvar = ChrB(65) & ChrB(66) & ChrB(67) & ChrB(68)
				

또는 기능이 이렇게 이진 데이터를 조작하기 새 바이트 데이터 형식의 배열을 만들 수 있습니다.

아래 나열된 몇 가지 간단한 사용하는 이 정보를 자세히 설명하기 위해 이러한 함수의 결과를 설명입니다.

Asc(Chr(255)) 인쇄 "255-->"

아무 것도 여기에 1바이트 ANSI 문자 대신 2바이트를 차지하는 문자 Chr 함수를 반환하는 것을 제외하면 새.

Asc(ChrB(255)) 인쇄 5 - 잘못된 프로시저 호출-->.

이 사용 Asc 함수를 항상 최소한 2 바이트 매개 변수를 예상하는 ChrB 함수는 단일 바이트 경우에만 반환하는 때문에 오류가 반환됩니다.

Asc(Chr(256)) 인쇄 5 - 잘못된 프로시저 호출-->.

Chr 함수는 2바이트 유니코드 문자를 반환하지만 여전히 하나만 0에서 해당 인수에 사용할 DBCS 시스템에서 Asc/Chr 2바이트 DBCS 문자 및 유니코드 에서 변환 처리하도록 참고 255 사이의 숫자를 사용합니다. ChrW 함수를 사용하여 전체 65, 536개의 유니코드 문자의 위치 액세스를 허용합니다.

AscW(ChrW(256)) 인쇄 "256-->"

이 섹션의 첫 번째 문은 새 버전입니다. ChrW 함수를 0에서 65,536 값을 가져와 32비트 시스템에서 해당 문자를 반환합니다. AscW 함수를 이 2바이트 문자 유니코드 문자로 해석하고 해당 문자 올바른 유니코드 값을 반환합니다.

Asc(ChrW(256)) 인쇄 "65-->"
Asc(ChrW(5000)) 인쇄 "63-->"

상황을 같습니다 ChrW 함수를 먼저 평가 중인 것입니다. ChrW(256)이 문자 "A"가 없으므로 함수는 Asc("A"), 줄어들고 유니코드 및 ANSI "A" 65 번호입니다. Visual Basic 방금 표시하는 Chr(5000)에 의해 표현되는 문자는 표시하는 방법을 모르기 때문에, "?", 및 예상대로, 유니코드 및 ANSI에 대한 값 "?" 63 것입니다.

AscB(Chr(65)) 인쇄 "65-->"
AscB(ChrW(256)) 인쇄 "0-->"
AscB(ChrW(257)) 인쇄 1 "-->
AscB(ChrW(555)) 인쇄 "43-->"
AscB(ChrW(65535)) 인쇄 "255-->"

이러한 모든 값을 내부적으로 각 문자를 나타내는 방법을 이해하면 설명될 수 반환 (위의 little-endian 참조를 참조) 및 사실을 받는 문자의 첫째 바이트만 시 AscB 함수를 찾습니다. 시각적으로 같은 다음 다이어그램을 찾습니다.
             -------------------
   Chr(65)   |   65   |    0   |
             -------------------
   Chr(256)  |    0   |    1   |
            -------------------
   Chr(257)  |    1   |    1   |
             -------------------
   Chr(555)  |   43   |    1   |
             -------------------
   Chr(65535)|   255  |  255   |
             -------------------
               byte 0    byte 1
				

AscB 함수를 바로 모든 문자의 첫 번째 바이트를 반환합니다.

인쇄 ChrB(65)--> ""

Visual Basic ChrB 함수를 경우에만 1바이트 문자열을 반환하기 때문에 이 ChrB 함수 이 호출에 대해 아무 것도 인쇄합니다. 사용자가 올바른 유니코드 문자 또는 일련의 문자 구성하지 않는 한 바이트 문자열을 다음과 같이 Visual Basic 없음으로 해서.

"A"--> 인쇄 ChrB(65) 및 ChrB(0)

이 경우, 우리는 단일 2 바이트 문자열로 두 1바이트 문자열을 연결하는. 결과 비트 패턴은 유니코드 "A" 비트 패턴을 같기 때문에 어떤 VBA 인쇄하는 것입니다.

본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Visual Basic 5.0 Learning Edition
  • Microsoft Visual Basic 6.0 Learning Edition
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Visual Basic 4.0 Standard Edition
  • Microsoft Visual Basic 4.0 Professional Edition
  • Microsoft Visual Basic 4.0 16-bit Enterprise Edition
  • Microsoft Visual Basic 4.0 32-Bit Enterprise Edition
키워드: 
kbmt kbinfo KB145745 KbMtko
기계 번역된 문서기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.
공유
추가 지원 옵션
Microsoft Community 지원 포럼
직접 문의하기
Microsoft Certified Partner 찾기
Microsoft Store
중소기업이 아닙니까?
소셜 채널로 문의하기