Windows와 다른 플랫폼에서 쉽게 char *
문자열을 사용하여 UTF-8로 처리 할 수 있습니다.크로스 플랫폼 친화적 인 방법으로 C/C++에서 유니 코드 문자열을 처리하는 방법은 무엇입니까?
문제는 Windows에서 wchar * strings (W)를 사용하여 메시지를 수락하고 보내야한다는 것입니다. ANSI 함수 (A)를 사용하면 유니 코드를 지원하지 않습니다.
진정한 휴대용 응용 프로그램을 작성하려면 Windows에서 유니 코드로 컴파일해야합니다.
이제 코드를 깨끗하게 유지하기 위해 코드에서의 추악함을 최소화하는 방법으로 문자열을 처리하는 데 권장되는 방법을보고 싶습니다.
필요할 수있는 문자열의 종류 : std::string
, std::wstring
, std::tstring
, char *
, wchat_t *
, TCHAR*
, CString
(ATL 일).
발생할 수있는 문제 :
cout/cerr/cin
과 유니 코드wcout,wcerr,wcin
- 모든 이름이 넓은 문자열 기능과 TCHAR 매크로 변형 -
strcmp
,wcscmp
및_tcscmp
등이. - 코드 내부에 상수 문자열이 있습니다. TCHAR을 사용하면 코드를
_T()
매크로로 채워야합니다.
가장 좋은 것으로 보이는 접근 방법은 무엇입니까? (사례를 환영합니다)
개인적으로는 std::tstring
접근 방식을 사용 하겠지만 필요한 경우 전환을 어떻게 수행하는지 알고 싶습니다.
http://utf8everywhere.org는이 모든 것을 설명합니다. –