C++11 wstring\u convert是否可以仅替换无效字符?

C++11 wstring\u convert是否可以仅替换无效字符?,c++11,character-encoding,non-ascii-characters,wstring,C++11,Character Encoding,Non Ascii Characters,Wstring,我目前正在开发一种从游戏中提取档案的工具,用于数据挖掘。目前,我从归档文件中提取元数据(每个归档文件的文件数、文件名、打包/解包大小等),并将其写入std::wstring进行进一步分析。我遇到了一个问题,就是使用std::wstring\u conver将文件名转换为宽字符 我的代码现在看起来像这样: struct IndexEntry { int32_t file_id; std::array<char, 260> filename; // more fi

我目前正在开发一种从游戏中提取档案的工具,用于数据挖掘。目前,我从归档文件中提取元数据(每个归档文件的文件数、文件名、打包/解包大小等),并将其写入
std::wstring
进行进一步分析。我遇到了一个问题,就是使用
std::wstring\u conver
将文件名转换为宽字符

我的代码现在看起来像这样:

struct IndexEntry {
    int32_t file_id;
    std::array<char, 260> filename;
    // more fields
}

wstring foo(IndexEntry entry) {
    std::wstringstream buffer;
    std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>> converter;
    buffer << entry.file_id << L'\n';
    buffer << converter.from_bytes(entry.filename.data()) << L'\n';
    // add rest of the IndexEntry fields to the stream
    return buffer.str();
}
struct IndexEntry{
int32文件id;
std::数组文件名;
//更多领域
}
wstring foo(索引入口){
std::wstringstream缓冲区;
std::wstring_转换器;
缓冲器