2011-11-16 4 views
0

유니 코드 지원을 추가하려고하는 레거시 VC++ 6 응용 프로그램을 사용하고 있습니다. 문자열에 W2CA() 매크로를 사용하면 예상되는 RPC 호출과 호출 부호없는 호출을 호출하는 함수가 있습니다. 전달, 내가 올바른 몇 가지 유니 코드 문자열을 변환 할 수없는 가능성이 있다고 가정에 맞습니까? 예를 들면, 나는 我们 的 T + G2가 문제라고 믿는다. wchar_t 버전을 작성하는 것이 더 나은지 판단하기 위해 노력하고 있습니다.데이터의 W2CA 손실 가능성, 맞습니까?

감사합니다.

답변

1

예 모든 문자를 변환 할 때 유니 코드에서 ANSI 변환이 성공할 것으로 기대할 수는 없습니다. UTF-8 대신 ANSI 대신 다른 인코딩을 사용할 수 있습니다.

질문에 대한 좋은 entry point into MSDN

:

lpDefaultChar

옵션 [에]. 문자가 지정된 코드 페이지에 표현 될 수없는 경우 사용할 문자의 포인터 . 함수가 시스템 기본값을 사용하는 경우 응용 프로그램에서이 매개 변수를 NULL로 설정합니다. 에 시스템 기본 문자를 얻으려면 응용 프로그램에서 GetCPInfo 또는 GetCPInfoEx 함수를 호출 할 수 있습니다.

+0

utf-8은 실제로 모든 유니 코드 문자열을 처리 할 수 ​​있습니까? 아직 wchar_t를 사용하지 않아도 될까요? – nagates

+0

http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8 "UTF-8은 무엇입니까?"아래의 표를 확인하십시오. UTF-8이 2^32 문자 범위를 어떻게 처리하는지 간단하게 알려줍니다. –