私はそのようなファイルを持っています。ラテン語以外の名前のファイルを正しく開きたいだけです。
ラテン語以外の名前だけのラテン語の名前を持つファイルには問題はありません。
ディレクトリのスキャンにQDirを使用し、QStringで名前を保持しているので、内部で正常に保持されます。
ただし、ファイルを開く際のボトルネックがあります。
QFileを使用したくないので、C ++ストリーム(より推奨)またはCファイルのみを使用できます。
ファイルを開きたいときは、次のようにします。
fstream stream(source.toStdString().c_str(),ios_base::in | ios_base::binary);
その後、試行が成功したかどうかを確認します。
if(!stream.is_open())
{ cout<<"file wasn't opened " <<source.toStdString().c_str())<<"\n";
return false; // cout was redirected to file // just a notice
}
ログファイルを取得しました:
ファイルが開かれていませんでした/home/sh/.mozilla/firefox/004_ ??????? -????? -?????。mp3
ラテン語以外の名前のファイルでは機能せず、ラテン語の名前を持つすべてのファイルで正常に機能します。
この問題はQFileを使用して飛び越えることができることを理解しています。
しかし、サードパーティのライブラリなしでそれを実行することは可能ですか、それともそれを解決するための別の方法がありますか?
ヒントを事前に感謝します。