私は、既存のWindows CE製品群の多言語バージョンを作成しようとしています。私はUTF8(BOMなし)のエンコードされたファイルを持っていて、それを読んでそれをMessageBoxに表示しようとしています。Windows CE、UnicodeおよびVisual Studio 2008
私はCPPファイルにUnicode文字を置き、そのように表示しても表示されない文字は表示されますが、運が悪いです。
私はUTF16、UTF16-LEおよびUTF16-BEファイルを試しましたが、どれも表示できないようです。
私はifstreamとwfstreamとCFileを試しています - 私はまた、私がグーグルで見つけたCStudioFileを試しました。テキストを別のファイルに保存して、それをUnicodeと見なすことができます。私はWindows CEアプリケーションでそれを見ることができません。
注:私は、Unicode文字セットスイッチをオンにしてコンパイルしました。
私はまだファイルを読み込んでいるエンコーディングを調べていませんが、私はそれを保存して、Unicodeとして読むことはできますが、ダイアログには表示しないことができます。
メッセージボックスに表示されるUnicodeテキストを取得するのに役立つヘルプがあります。 Windows CE用のC++ SDKは非常に少なくなっていますが、利用できない多くの新機能があります。また、Visual Studio 2008でコンパイルする必要があります。
EDITコードスニペットは以下のとおりです。 MessageBoxWは正しいテキストを表示しません。これは、エミュレータ上のフォントの問題かもしれません。
CFile file(L"c:\\test\\_utf8.txt", CFile::modeRead);
int filesize = file.GetLength();
CStringA strA;
file.Read(strA.GetBuffer(filesize), filesize);
strA.ReleaseBuffer();
CStringW strW = CA2W(strA, CP_UTF8);
strW.AppendChar(0);
MessageBoxW(0, strW, 0, 0);
のではなく、誰もが*は*あなたのコードで間違っている可能性がどうなったと思う作り、提供してくださいあなたのコードが実際に何をしているのかを示す[最小限で完全で検証可能な例](http://stackoverflow.com/help/mcve)。誰かが間違っていることをあなたに伝えることができます。 –