Linux で例外をスローしている C++ コードのサンプルがあります。
namespace fs = std::filesystem;
const fs::path pathDir(L"/var/media");
const fs::path pathMedia = pathDir / L"COMPACTO - Diogo Poças.mxf" // <-- Exception thrown here
スローされる例外は次のとおりです。filesystem error: Cannot convert character sequence: Invalid in or incomplete multibyte or wide character
問題はç
キャラクターの使用に関連していると推測します。
- このワイド文字列 (wchar_t) が「無効または不完全なマルチバイト文字またはワイド文字」なのはなぜですか?
- 今後、関連するコードをクロスプラットフォームにして、Windows や Linux で実行するにはどうすればよいでしょうか。
- 使用する必要があるヘルパー関数はありますか?
- プログラマーの PoV から強制する必要のあるルールは何ですか?
- ここで「Linux ではワイド文字列を使用しないでください」という回答を見ましたが、Windows でも同じ規則を使用しますか?
Linux 環境 (クロスプラットフォームで実行したいという事実を忘れないでください):
- Ubuntu 18.04.3
- gcc 9.2.1
- C++17