ここに私のコードです。 szは単語 '䶮'、sz2は単語 ''です。両方ともutf-8でコーディングしています。バイナリレベルでは同じ単語ではありません。 符号化文字セットをGBKで変換することは、私が見たいものです。 szがトランスコードしているときに「変換に失敗しました」というメッセージが表示されました。 私はこの問題を解決するにはどのようにすればよいのかをブーストgbk codepage.ifに対応する単語がないので問題があると思います。私は英語のスピーカーではありません。私の解説はあなたを混乱させません。ここで単語 ''をutf-8からgbkに変換する方法
char sz[] = { 0xE4,0xB6, 0xAE,0};
char sz2[] = { 0xEE, 0xA1,0xA3,0 };
fstream o("1.dat", std::ios::out | std::ios::binary);
try {
o << boost::locale::conv::from_utf(sz2, "gbk", boost::locale::conv::stop) << endl;
o << boost::locale::conv::from_utf(sz, "gbk", boost::locale::conv::stop) << endl;
}
catch(boost::locale::conv::conversion_error e){
cout << e.what() << endl;
}
o.close();
GBKに対応する記号がない場合、正しく変換することはできません。 – deviantfan
'boost :: locale :: conv :: stop'はエラーで停止すると言って、' boost :: locale :: conv :: skip'はスキップ(無視)して ''します。 – MSalters