유니코드에서 한 문자가 Little-Endian또는 Big-Endian으로 정의 되는 것을 볼 수 있다
이는 시스템상의 사용하는 문제로 가끔 변환해 줄 필요가 있는데....
네트워크 관련 API가 있지만, 해더 파일을 넣어줘야 한다는 이유 하나만으로 쓰기가 싫어졌다 -ㅂ-ㅋ
이것으로 간단하게 해결~!
이는 시스템상의 사용하는 문제로 가끔 변환해 줄 필요가 있는데....
네트워크 관련 API가 있지만, 해더 파일을 넣어줘야 한다는 이유 하나만으로 쓰기가 싫어졌다 -ㅂ-ㅋ
void Trans_Endian(WCHAR *uni)
{
int nSize = WideCharToMultiByte(CP_UTF8, 0, uni, -1, NULL, 0, NULL, NULL);
for (int n = 0; n<nSize; n++)
{
// UTF-16 little Endian -> Big Endian
WCHAR high_bit = 0x0000, low_bit = 0x0000;
high_bit = (*(uni+n) & 0xFF00) >> 8;
low_bit = (*(uni+n) & 0x00FF) << 8;
WCHAR p = low_bit | high_bit;
if (p == 0x00cd) break;
*(uni+n) = _T(p);
}
}
{
int nSize = WideCharToMultiByte(CP_UTF8, 0, uni, -1, NULL, 0, NULL, NULL);
for (int n = 0; n<nSize; n++)
{
// UTF-16 little Endian -> Big Endian
WCHAR high_bit = 0x0000, low_bit = 0x0000;
high_bit = (*(uni+n) & 0xFF00) >> 8;
low_bit = (*(uni+n) & 0x00FF) << 8;
WCHAR p = low_bit | high_bit;
if (p == 0x00cd) break;
*(uni+n) = _T(p);
}
}
이것으로 간단하게 해결~!