来自http://tunps.com/widechartomultibyte-example
#include <windows.h>#include <stdio.h>#include <wchar.h>#include <string.h>/* string consisting of several Asian characters */wchar_t wcsString[] = L"\u9580\u961c\u9640\u963f\u963b\u9644";//門阜陀阿阻附int main(){ size_t wcsChars = wcslen( wcsString); size_t sizeRequired = WideCharToMultiByte( 950, 0, wcsString, -1, NULL, 0, NULL, NULL); printf( "Wide chars in wcsString: %u\n", wcsChars); printf( "Bytes required for CP950 encoding (excluding NUL terminator): %u\n", sizeRequired-1); sizeRequired = WideCharToMultiByte( CP_UTF8, 0, wcsString, -1, NULL, 0, NULL, NULL); printf( "Bytes required for UTF8 encoding (excluding NUL terminator): %u\n", sizeRequired-1);} |