달력

4

« 2024/4 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
유니코드에서 한 문자가 Little-Endian또는 Big-Endian으로 정의 되는 것을 볼 수 있다
이는 시스템상의 사용하는 문제로 가끔 변환해 줄 필요가 있는데....

네트워크 관련 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);
            
     }

}

이것으로 간단하게 해결~!



:
Posted by Lunaness