程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> window下 ASCI Unicode utf8之間互相轉換

window下 ASCI Unicode utf8之間互相轉換

編輯:關於C++

window下 ASCI Unicode utf8之間互相轉換。本站提示廣大學習愛好者:(window下 ASCI Unicode utf8之間互相轉換)文章只能為提供參考,不一定能成為您想要的結果。以下是window下 ASCI Unicode utf8之間互相轉換正文


//CString to string的轉能夠只適用於某些編碼狀況
string CStringToChar(const CString& strSrc)
{
  CString strTmp(strSrc);
  string str(strTmp.GetBuffer(strTmp.GetLength()));
  strTmp.ReleaseBuffer();
  return str;
}

wstring AnsiToUnicode(const string& buf)
{
  int len = ::MultiByteToWideChar(CP_ACP, 0, buf.c_str(), -1, NULL, 0);
  if (len == 0) return L"";

  wstring strUnicode;
  strUnicode.resize(len);
  ::MultiByteToWideChar(CP_ACP, 0, buf.c_str(), -1, (wchar_t*)strUnicode.c_str(), len);

  return strUnicode;
}

string UnicodeToAnsi(const wstring& buf)
{
  int len = ::WideCharToMultiByte(CP_ACP, 0, buf.c_str(), -1, NULL, 0, NULL, NULL);
  if (len == 0) return "";

  string strUtf8;
  strUtf8.resize(len);
  ::WideCharToMultiByte(CP_ACP, 0, buf.c_str(), -1, (char*)strUtf8.c_str(), len, NULL, NULL);

  return strUtf8;
}

wstring Utf8ToUnicode(const string& buf)
{
  int len = ::MultiByteToWideChar(CP_UTF8, 0, buf.c_str(), -1, NULL, 0);
  if (len == 0) return L"";

  wstring strUnicode;
  strUnicode.resize(len);
  ::MultiByteToWideChar(CP_UTF8, 0, buf.c_str(), -1, (wchar_t*)strUnicode.c_str(), len);

  return strUnicode;
}

string UnicodeToUtf8(const wstring& buf)
{
  int len = ::WideCharToMultiByte(CP_UTF8, 0, buf.c_str(), -1, NULL, 0, NULL, NULL);
  if (len == 0) return "";

  string strUtf8;
  strUtf8.resize(len);
  ::WideCharToMultiByte(CP_UTF8, 0, buf.c_str(), -1, (char*)strUtf8.c_str(), len, NULL, NULL);

  return strUtf8;
}

string AnsiToUtf8(const string& strSrc)
{
  return UnicodeToUtf8(AnsiToUnicode(strSrc));
}

string AnsiToUtf8(const CString& strSrc)
{
  return UnicodeToUtf8(AnsiToUnicode(CStringToChar(strSrc)));
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved