Какой формат utf должен повысить возврат wdirectory_iterator? - PullRequest
0 голосов
/ 01 мая 2009

Если файл содержит знак £ (фунт), то 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

1 Ответ

2 голосов
/ 01 мая 2009

Кодировка для широких символов (wchar_t объектов) зависит от реализации. Чтобы сработало второе утверждение (т. Е. L "знак фунта £"), вам, вероятно, потребуется изменить базовый языковой стандарт. По умолчанию используется «C», который не знает о символе фунта. Шестнадцатеричное значение успешно, так как это не требует сопоставления глифа со значением в определенной кодировке.

Примечание: для краткости я пропускаю точную формулировку стандартного w.r.t wchar_t, расширенных наборов символов и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...