본문 바로가기
반응형

유니코드9

[개발/VC++] 유니코드 버전으로 된 프로젝트에서 CString 를 char* 로 바꾸는 방법 MFC에서 유니코드 버전으로 된 프로젝트에서 CString 를 char* 로 바꾸는 방법은 유니코드 상태에서 CString 을 바로 CHAR* 로 바꾸는 것이 안됩니다. W2A 나 A2W 로 코드 변환을 하거나 wsprintf(); 함수를 이용 하면 됩니다. 유니코드는 사용 되는 바이트 수가 2바이트이고 1바이트 문자열로 변환하면 깨져 버리는 문자열 들이 있는데 처리를 해야 합니다. 유니코드를 멀티바이트 코드로 변환 하려면 char Text[80]; wsprintfA(Text, "%s", L"문자열" ); 멀티바이트 코드를 유니코드로 변환 하려면 WCHAR Text[80]; wsprintfW(Text, L"%s", "문자열" ); 변환될 문자열을 %s(대문자)로 wsprintf()함수를 사용합니다. ※ .. 2011. 2. 8.
[VC++] VC++ 문자 Encoding 방식 싱글바이트캐릭터 SBCS (Single-byte character set) 한 문자 표현에 1Byte를 사용하는 방식이다. 예로 ASCII 코드가 있으며, 한글이나 일본어표현은 불가능하다. 멀티바이트캐릭터 MBCS (Multi-byte character set) 한 문자 표현에 1Byte 이상을 사용하는 방식으로 Windows에서 MBCS에는 딱 두종류가 있다. SBCS와 DBCS( Double-byte character set) 결국 많아봐야 최대 2Byte라는 얘기다. 한글이나 일본어가 처리되는 기본 방식이다. 즉, printf( “안녕하삼” ); std::cout Data type SBCS/MBCS char : 일반적인 1Byte 문자형 char를 사용해서 표현 Unicode wchar_t : wi.. 2010. 9. 30.
[ms-sql] sp_executesql 에서 nvarchar(max) 사용 sql server 2000에서 sp_executesql 을 사용할 때 제약조건이 있었는데, sql 문을 4000자 이상 처리할 수 없다는 것입니다. sql 문은 유니코드 문자열(nvarchar 나 nchar)이어야 하기 때문에 최대 4000자까지 쓸 수 있습니다. 참고로 ntext 형은 변수 선언을 할 수 없습니다. 예를 들어 다음과 같은 쿼리가 있다고 해보죠. declare @sql nvarchar(4000) set @sql = 'select * from tableA .....' exec dbo.sp_executesql @sql 만약 @sql에 4000자가 넘어가는 문장을 넣게되면 @sql은 4000자에서 문장을 자를것이고, 따라서 sp_executesql은 실패하게 될 것입니다. 하지만 sql se.. 2010. 9. 20.
반응형