and so on/문자열

멀티/유니->utf8, utf8->멀티/유니

밀크빵 2012. 12. 10. 10:44

    const char* uni_to_utf8(const wchar_t* unicode)
    {
      static CString utf8;
      size_t len = wcslen(unicode);
      int szutf8 = WideCharToMultiByte(CP_UTF8, 0, unicode, len,  utf8.GetBufferSetLength( len * 4 ), len*4, 0, 0);
      utf8.GetBufferSetLength( szutf8 );
      return utf8.GetString();
    }
    
    const wchar_t* utf8_to_uni(const char* utf8)
    {
      static CStringW unicode;
      unicode.Empty();
      size_t len = strlen(utf8);
      int szuni = MultiByteToWideChar(CP_UTF8, 0, utf8, len, unicode.GetBufferSetLength(len), len);
      return  unicode.GetBufferSetLength(szuni);
    }
    
    const char* ansi_to_utf8(const char* ansi)
    {
      return uni_to_utf8 (CStringW(ansi));
    }
    
    const char* utf8_to_ansi(const char* utf8)
    {
      static CString ansi;
      ansi.Empty();
      ansi = utf8_to_uni(utf8);
      return ansi;
    }