如何在Visual C++中使用UTF8Encoding

And*_*ndy 3 c++ managed-c++ utf-8 visual-studio-2010

我需要将下面的c#代码更改为c ++代码.

    public static byte[] StrToByteArray(string str)
    {
        System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
        return encoding.GetBytes(str);
    }
Run Code Online (Sandbox Code Playgroud)

这个网站上,我找到了UTF8Encoding的c ++代码,我从中创建了这段代码

    void StrToByteArray(string unicodeString)
    {
        UTF8Encoding^ utf8 = gcnew UTF8Encoding;
        array<Byte>^encodedBytes = utf8->GetBytes( unicodeString );
    }
Run Code Online (Sandbox Code Playgroud)

但这给了我以下错误

错误2错误C2664:'cli :: array ^ System :: Text :: Encoding :: GetBytes(cli :: array ^)':无法将参数1从'std :: string'转换为'cli :: array

为什么它会在与文档相同的情况下执行此操作?(除了我使用普通字符串,但使用顶级字符串^给我一个错误.)

我不确定它是否相关但我的代码是管理的.

注意:我还没有担心返回任何数据,直到我得到这个工作.

Phi*_*ipp 5

stringC++中的数据类型与C#中的数据类型不同.请尝试使用System::String^.