日本語を標準入力から読み込みたいのですが一部の文字が文字化けしてしまいます。
たとえば、"日本語"と入れると日本??となります。
きちんと読み取れる場合もあって"教育"と入れると教育と読み取れます。
WindowsでコンパイラはMinGW、入力はUTF-8です。
どのように直せばよいでしょうか。

#include <iostream>
using namespace std;
int main() {
// 日本語を入力すると文字化けする
string japanese;
cout << "input > " << flush;
cin >> japanese;
cout << japanese << endl;
return 0;
}