문제

파일에 £ (파운드) 부호가 포함 된 경우 directory_iterator는 UTF8 문자 시퀀스 xc2 xa3를 올바르게 반환합니다.

wdirectory_iterator는 넓은 숯을 사용하지만 여전히 UTF8 시퀀스를 반환합니다. 이것이 wdirectory_iterator의 올바른 동작입니까, 아니면 잘못 사용하고 있습니까?

AddFile(testpath, "pound£sign"); 
wdirectory_iterator iter(testpath);
TS_ASSERT_EQUALS(iter->leaf(),L"pound\xC2\xA3sign"); // Succeeds
TS_ASSERT_EQUALS(*iter, L"pound£sign"); // Fails
도움이 되었습니까?

해결책

넓은 숯을위한 인코딩 (wchar_t 개체)는 구현 종속입니다. 두 번째 진술 (예 : "파운드 £ 표시")이 작동하려면 근본적인 로케일을 변경해야 할 것입니다. 기본값은 파운드 문자에 대해 모르는 "C"입니다. 16 진수는 Glyph를 특정 인코딩의 값에 매핑 할 필요가 없기 때문에 성공합니다.

참고 : 나는 표준 WRT WCHAR_T의 정확한 문구를 건너 뛰고 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top