如果文件包含If (井号)符号,则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
发布于 2009-05-01 01:01:57
宽字符(wchar_t
对象)的编码依赖于实现。要使第二个语句(即L“井号to”)工作,您可能需要更改底层语言环境。默认值是"C“,它不知道井号字符。十六进制值成功,因为这不需要将字形映射到特定编码中的值。
注意:为简洁起见,我跳过了标准w.r.t wchar_t、扩展字符集等的确切措辞。
https://stackoverflow.com/questions/810677
复制