C++ UTF8 互轉 Unicode
C++/MFC UTF8 轉 Unicode
char* U8ToUnicode(char* szU8)
{
//UTF8 to Unicode
//預轉換,得到所需空間的大小
int wcsLen = ::MultiByteToWideChar(CP_UTF8, NULL, szU8, strlen(szU8), NULL, 0);
//分配空間要給'\0'留個空間,MultiByteToWideChar不會給'\0'空間
wchar_t* wszString = new wchar_t[wcsLen + 1];
//轉換
::MultiByteToWideChar(CP_UTF8, NULL, szU8, strlen(szU8), wszString, wcsLen);
//最後加上'\0'
wszString[wcsLen] = '\0';
char *m_char;
int len = WideCharToMultiByte(CP_ACP, 0, wszString, wcslen(wszString), NULL, 0, NULL, NULL);
m_char = new char[len + 1];
WideCharToMultiByte(CP_ACP, 0, wszString, wcslen(wszString), m_char, len, NULL, NULL);
m_char[len] = '\0';
return m_char;
}
Unicode 轉 UTF8
char* UnicodeToU8(wchar_t* wszString)
{
// unicode to UTF8
//預轉換,得到所需空間的大小,這次用的函式和上面名字相反
int u8Len = ::WideCharToMultiByte(CP_UTF8, NULL, wszString, wcslen(wszString), NULL, 0, NULL, NULL);
//同上,分配空間要給'\0'留個空間
//UTF8雖然是Unicode的壓縮形式,但也是多位元組字串,所以可以以char的形式儲存
char* szU8 = new char[u8Len + 1];
//轉換
//unicode版對應的strlen是wcslen
::WideCharToMultiByte(CP_UTF8, NULL, wszString, wcslen(wszString), szU8, u8Len, NULL, NULL);
//最後加上'\0'
szU8[u8Len] = '\0';
return szU8;
}
相關文章
- C++ string互轉wstring/Unicode互轉ANSI/Unicode互轉UTF8C++Unicode
- Unicode編碼和中文互轉(JAVA實現)UnicodeJava
- webSocket 二進位制傳輸基礎準備-Unicode轉UTF16和UTF8WebUnicode
- c++中utf8字串和gbk字串的轉換C++字串
- unicode轉碼工具類Unicode
- C++中UNIX時間戳與日期互轉C++時間戳
- 從 unicode 到位元組的轉換Unicode
- python實現中文和unicode轉換PythonUnicode
- c++各種字串互轉(char*、wchar_t*、CString、string、wstring、LPCWSTR)C++字串
- UTF8
- SpringBootDateString互轉Spring Boot
- unicodeUnicode
- 中文字串 轉 unicode 編碼的字串字串Unicode
- c++ 鍵盤/滑鼠互動C++
- Hacking with UnicodeUnicode
- set names utf8;
- String 和Inputstreem互轉
- Buffer 與 Mat 互轉
- QImage 與 Mat 互轉
- Unicode 與 UTFUnicode
- 【C++】C++之型別轉換C++型別
- 【arcmap】 utf8編碼
- utf8 加密與解密加密解密
- PDF 和圖片互轉
- oracle和sqlserver互訪(轉)OracleSQLServer
- Linux下域名IP互轉Linux
- chrome語音文字互轉Chrome
- 用Javascript實現UTF8編碼轉換成gb2312編碼JavaScript
- Unicode的前世今生Unicode
- C++ vector容器的swap方法(容器互換)C++
- QT QML模組與C++的互動QTC++
- c++ 型別轉換C++型別
- (1)用encode("utf8")把unicode編碼變成str/(2)python中@property,@x.setter和@x.deleter/(3)MD5加密編碼UnicodePythondelete加密
- Json物件與Json字串互轉JSON物件字串
- Java中List陣列互轉Java陣列
- Linux軟體包轉換-deb與rpm互轉Linux
- C++圖片格式轉換:BMP轉JPEGC++
- ptyon 特殊處理 url 編碼與解碼,字元編碼轉化 unicode字元Unicode