| 47 | #endif |
| 48 | |
| 49 | std::string systemToUtf8( const std::string & msg ) |
| 50 | { |
| 51 | #ifdef _WIN32 |
| 52 | if ( msg.empty() ) |
| 53 | return msg; |
| 54 | auto rsize = MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED, msg.data(), int( msg.size() ), nullptr, 0 ); |
| 55 | std::wstring wmsg; |
| 56 | wmsg.resize( size_t( rsize ) ); |
| 57 | rsize = MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED, msg.data(), int( msg.size() ), wmsg.data(), int( wmsg.size() ) ); |
| 58 | if ( rsize == 0 ) |
| 59 | { |
| 60 | spdlog::error( GetLastError() ); |
| 61 | return {}; |
| 62 | } |
| 63 | wmsg.resize( rsize ); |
| 64 | return Utf16ToUtf8( wmsg ); |
| 65 | #else |
| 66 | return msg; |
| 67 | #endif |
| 68 | } |
| 69 | |
| 70 | std::string utf8ToSystem( const std::string & utf8 ) |
| 71 | { |
no test coverage detected