すべて私はWinformを書くためにC++/CLIを使用しています。私のオペレーティングシステムの言語は中国語です。私はopenfiledialogからSystem :: Stringを取得し、.NETでSystem :: StringをUTF8エンコーディングに変換し、最後にStringToHGlobalAnsiを使用してstd :: stringに変換します。私は中国の名前のビデオを開き、ffmpegのにそれを養う場合.NET System :: std :: stringへの文字列
しかし、ffmpegのは正しくビデオを開くことができます。しかし、私が韓国に映像を公開すると、ffmepgは映像を開くことができません。オペレーティングシステムの言語とは異なる別の言語のビデオを開く方法を知っている人はいますか?
Windowsでは、UTF-8はUTF-16を内部的に使用しているため、「W」(ワイド・チャーブル)を使用する必要があります。 )Win32の関数ではなく、 'A'(ASCII)のものです。したがって、Windowsでは 'std :: wstring'を*使用するべきでしょう。 'msclr :: interop :: marshal_as(theSystemString)'のような適切なマーシャリング関数を使うべきです。しかし、とにかく、あなたが[mcve]を提供し、*「正しく開く」*が意味することを説明しないかぎり、あなたはここでもう助けを得ることはありません。 –
ここに問題があります:ffmpegが受け入れる/期待するファイル名文字列の種類 – Medinoc
私の中国語オペレーティングシステムでは、ffmpegはさまざまな言語(日本、韓国...)のファイル名を受け入れることができると期待しています.ffmegを入力する前に、このファイル名System :: Stringで何をすればよいですか。 –