最初はLinuxでプロジェクトを構築し、ストリームを中心に構築しました。
Windowsに移行し始めたとき、いくつかの問題が発生しました。
UTF-16エンコーディングで開きたいファイルの名前があります。
私はfstreamを使用してそれをやろうとしています:
QString source; // content of source is shown on image
char *op= (char *) source.data();
fstream stream(op, std::ios::in | std::ios::binary);
ただし、ファイルを開くことはできません。
確認すると、
if(!stream.is_open())
{} // I always get that it's not opened. But file indeed exists.
私はwstreamでそれをやろうとしました。ただし、wstreamはchar *のみを受け入れるため、結果は同じです。私が理解しているように、char *として送信される文字列は、最初のゼロの後で切り捨てられ、ファイル名の1つのシンボルのみが送信されるため、ファイルが見つかりません。Vissual studioのwfstreamが名前としてwchar_t*行を受け入れることができることは知っていますが、私の選択したコンパイラーはMinGWであり、wstringコンストラクター用のそのような署名はありません。
STLストリームでそれを行う方法はありますか?
さらに
、その文字列はASCII記号だけでなく、ロシア語、ドイツ語、中国語の記号を同時に含む可能性があります。ASCIIまたはローカルエンコーディングだけに制限したくありません。
次の追加
また、ASCIIだけでなく、データも異なる可能性があります。そうでない場合は、Unicodeをまったく気にしません。例えば
前もって感謝します!