[개발/vc++] 유니코드로 저장하기
// 첫 식별자가 파일의 처음 부분이 "FFFE" 값이다.
그리고 두바이트씩 문자크기를 갖는다.
TCHAR szPath[] = _T("12345");
int nlen = _tcslen(szPath);
CFile file (_T("D:\\test.xml"), CFile::modeCreate|CFile::modeWrite);
TCHAR szTmp[2];
WORD wd = 0xfeff;
memcpy(szTmp, &wd, 2);
file.Write(szTmp, 2);
file.Write(szPath, nlen * sizeof(TCHAR));
file.Close();
[개발/VC++] UTF-8로 저장하기
// 헤더가 3바이트이다. 문자는 3바이트씩 저장
// utf-8로 저장
int UnicodeToUtf8(TCHAR* pUnicode, char** pUtf8)
{
int len = ::WideCharToMultiByte(CP_UTF8, 0, (LPCWSTR)pUnicode, -1, NULL, 0, NULL, NULL);
*pUtf8 = new char[len];
::WideCharToMultiByte(CP_UTF8, 0, (LPCWSTR)pUnicode, -1, *pUtf8, len, NULL, NULL);
return len;
}
// UTF 0xEFBBBF
TCHAR szTmp[2];
WORD wd = 0xbbef;
memcpy(szTmp, &wd, 2);
file.Write(szTmp, 2);
BYTE byte = 0xbf;
memcpy(szTmp, &byte, 1);
file.Write(szTmp, 1);
char *pUtf8 = NULL;
nLen = UnicodeToUtf8(szXML, &pUtf8);
file.Write(pUtf8, nLen-1);
delete []pUtf8;
반응형
'IT-개발,DB' 카테고리의 다른 글
[개발/버전] SVN 설치 (0) | 2012.01.26 |
---|---|
[개발/c++] Send HTTP Post Request (0) | 2012.01.25 |
[개발/인터넷] HTTP 상태 코드(HTTP Status codes) (0) | 2012.01.19 |
[개발/웹] Post, Get 데이터 보내기 유의사항 (0) | 2012.01.13 |
[개발/C++] 작업표시줄 정보 및 작업영역 구하기 (0) | 2012.01.13 |
댓글