2013-04-23 2 views
1

저는 C++을 처음 사용하고 UnicodeString을 문자열로 변환하는 데 문제가있어서 이제는 한 유형에서 다른 유형으로 변환하는 가장 쉬운 방법을 찾고 있습니다.UnicodeString을 const char *로 변환하는 가장 쉬운 방법은 C++입니까?

저는 UnicodeString으로 문자열이 필요한 기본 윈도우 기능을 사용하고 싶습니다. 어떻게 코드 작업을 할 수 있습니까? 사용

UnicodeString Exec = "notepad"; 
WinExec(Exec.c_str(), 0); 

환경은 C++ 빌더 XE2

+1

['WideCharToMultiByte()'] (http://msdn.microsoft.com/en-us/library/windows/desktop/dd374130(v=vs.85).aspx)는 아마도 사용자가 찾고있는 것일 수 있습니다. 에 대한. 주의 깊게 읽으십시오. 그것은 꽤 간단합니다. – WhozCraig

+0

'wstring_convert'는 나쁘지 않습니다 (http://en.cppreference.com/w/cpp/locale/wstring_convert). –

답변

3

std::string 유니 코드 데이터를 저장할 수있다. 당신은 std :: wstring이 필요합니다.

내가 전에 유니 코드 스트링 들어,하지만 여기에 API에서 찾고 적이는 :

http://docwiki.embarcadero.com/Libraries/XE2/en/System.UnicodeString_Methods

그것은 당신이 다음 구성하는 데 사용할 수있는 wchar_t를 *를 반환 (.c_str라는 함수)가 a std::wstring

정말 std :: string이 필요한 경우이 대답을 살펴보십시오.

How to convert wstring into string?

+1

[wchar_t는 유니 코드가 아닙니다] (http://en.wikipedia.org/wiki/Wide_character#C.2FC.2B.2B) 유니 코드를 저장할만큼 충분히 큰'std :: wstring '에 의존 할 수 없습니다 캐릭터. 가능한 경우'std :: u16string' 또는'std :: u32string'을 적절히 사용하십시오. –

+0

네, 사과, wchar_t'는'유니 코드 문자를 저장할 수 있지만 크기는 컴파일러에 따라 다릅니다. 고마워요 @ 장군님 Obvlious – Salgar

1

당신은 ICU의 API에 갈 ++ C에서 완전한 유니 코드 지원을 찾고 있다면. 여기에 대한 모든 것을 찾을 수있는 웹 사이트가 있습니다. http://site.icu-project.org/

관련 문제