我需要將以下c#代碼更改爲C++代碼。如何在Visual C++中使用UTF8Encoding
public static byte[] StrToByteArray(string str)
{
System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
return encoding.GetBytes(str);
}
上this website我發現對於UTF8Encoding從中我建立這個代碼
void StrToByteArray(string unicodeString)
{
UTF8Encoding^ utf8 = gcnew UTF8Encoding;
array<Byte>^encodedBytes = utf8->GetBytes(unicodeString);
}
C++代碼,但是這給了我以下錯誤
錯誤2錯誤C2664:「CLI: :array ^ System :: Text :: Encoding :: GetBytes(cli :: array ^)':無法將參數1從 'std :: string'轉換爲 'cli :: array
爲什麼它會這樣做,而它與文檔相同? (除了我使用正常的字符串,但使用頂級字符串^給我一個錯誤。)
我不確定它是否相關,但我的代碼管理。
注意:我還沒有擔心有關返回任何數據,直到我得到這個工作。
也許它想要unicodeString.c_str()? – 2011-05-09 16:17:02
你的輸入絕對是一個C++字符串而不是託管字符串嗎?如果它是一個C++字符串,那麼我不確定將它轉換爲託管字符串只是爲了執行UTF-8編碼是有意義的 - 您可以使用Windows API。 – Rup 2011-05-09 16:38:09