vector<BYTE>
文字列内の文字を表す があります。これらの文字を ASCII 文字として解釈し、Unicode (UTF-16) 文字列に格納したいと考えています。vector<BYTE>
現在のコードは、 の文字が ASCII ではなく Unicode であることを前提としています。これは標準 ASCII では問題なく機能しますが、拡張 ASCII 文字では失敗します。これらの文字は、 経由で取得した現在のコード ページを使用して解釈する必要がありますGetACP()
。これらの ASCII 文字を使用して Unicode (UTF-16) 文字列を作成するにはどうすればよいですか?
編集:解決策は、ここで説明されているマクロと関係があるはずだと思います: http://msdn.microsoft.com/en-us/library/87zae4a3(v=vs.80).aspx 正確にはわかりません実際の実装はどうなるか。
int ExtractByteArray(CATLString* pszResult, const CByteVector* pabData)
{
// place the data into the output cstring
pszResult->Empty();
for(int iIndex = 0; iIndex < pabData->GetSize(); iIndex++)
*pszResult += (TCHAR)pabData->GetAt(iIndex);
return RC_SUCCESS;
}