StringHelper::replaceIllegalCharacters() currently replaces only the standard Windows filename characters: wstring StringHelper::replaceIllegalCharacters(const wstring& filename) { return replaceCharacters(filename, L"<>:\"/\\|?*", L"_"); } However, it does not remove ASCII control characters (e.g. \r, \n, \t). On my system, the Bluetooth audio endpoint property ({b3f8fa53-0004-438e-9003-51a46e139bfc},6) contains a trailing CRLF: 20 50 65 62 62 6C 65 20 56 33 0D 0A which corresponds to: " Pebble...
replaceIllegalCharacters doesn't handle illegal filename