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
- Java Unicode互轉JavaUnicode
- php的漢字轉換: Unicode(UTF8)->GBK (轉)PHPUnicode
- Unicode,GBK和UTF8Unicode
- GB2312 Unicode轉換表實現跨平臺utf8轉碼unicodeUnicode
- Unicode編碼和中文互轉(JAVA實現)UnicodeJava
- C++ 將中文轉為UTF8 code(URL碼)C++
- webSocket 二進位制傳輸基礎準備-Unicode轉UTF16和UTF8WebUnicode
- AL32UTF8 / UTF8 (Unicode) Database Character Set Implications [ID 788156.1]UnicodeDatabase
- C++中UNIX時間戳與日期互轉C++時間戳
- C++ url中文編碼處理 編碼轉為UTF8 CChineseCode下載C++
- unicode轉碼工具類Unicode
- UNICODE碼轉漢字Unicode
- ANSI與UTF8之間的轉換!std::string與UTF8之間的轉換
- UTF-8 and Unicode FAQ(轉)Unicode
- 【轉】utf-8與Unicode的轉化Unicode
- 從utf8轉到US7ASCIIASCII
- Linux下轉換字符集(UTF8轉換)Linux
- iOS Unicode轉中文(UTF-8)iOSUnicode
- 在 VB 中使用 Unicode API (轉)UnicodeAPI
- CSS文字:unicode-bidi(轉)CSSUnicode
- Linux Unicode 程式設計(轉)LinuxUnicode程式設計
- C# UTF8字串轉漢字C#字串
- WideCharToMultiByte和MultiByteToWideChar函式的用法(ascii轉unicode unicode轉ascii)IDE函式ASCIIUnicode
- 從 unicode 到位元組的轉換Unicode
- VB中的Unicode 和 Ansi 格式 (轉)Unicode
- python unicode轉中文及轉換預設編碼PythonUnicode
- 字串: 怎樣在ANSI 和 UNICODE間做轉換 (轉)字串Unicode
- python實現中文和unicode轉換PythonUnicode
- UNICODE、DBCS的一點小知識 (轉)Unicode
- unicodeUnicode
- 【轉】 oracle 字符集 AL32UTF8、UTF8Oracle
- WindowsCE下Unicode和Ansi字元間互相轉換的例子 (轉)WindowsUnicode字元
- MySQL字符集設定及字元轉換(latin1轉utf8)MySql字元
- Delphi 中big5 轉 Unicode 函式Unicode函式
- C++ vector容器的swap方法(容器互換)C++
- Python與C++互動程式設計PythonC++程式設計
- Canvas與Image互轉Canvas