이 질문에 많은 질문이 제기되지만이 작업을 수행 할 수있는 방법이 있는지 확인하고 싶습니다.C 문자열에서 넓은 C 문자열
기본적으로 나는 null로 끝나는 C 문자열을 가리키는 const char *가 있습니다. 동일한 문자가있는 문자열을 가리키는 const wchar_t *를 기대하는 또 다른 함수가 있습니다. 당분간
, 나는 이런 식으로 일을하려고 한 : 내가 기대하는 제 3의 라이브러리를 처리하고있어 이후size_t newsize = strlen(myCString) + 1;
wchar_t * wcstring = new wchar_t[newsize];
size_t convertedChars = 0;
mbstowcs_s(&convertedChars, wcstring, newsize, myCString, _TRUNCATE);
delete[] wcstring;
내가 많은 장소에서 이러한 변환을해야 하나 다른 하나. 이것에 대해 권장되는 방법입니까?
을 그것은 강하게'const를 문자 *'문자열 (UTF-8이 될 수 ISO-라틴 1, KOI의 가정 인코딩에 따라 달라집니다 -8, ...). 인코딩을 알아야합니다. http://www.gnu.org/software/libiconv/ library에 관심을 가질 수 있습니다. –
당신은 본질적으로 올바른 길을 가고 있습니다. 먼저 널 포인터로'mbstowcs'를 실행하여 올바른 타겟 크기를 얻을 수 있습니다. 프로그램 시작시'std :: setlocale ("");을 실행하는 것을 잊지 마십시오. –