如何在可视C++中使用 UTF8 编码

How to use UTF8Encoding in Visual C++

本文关键字:UTF8 编码 C++ 可视      更新时间:2023-10-16

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

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

在这个网站上,我找到了 UTF8 编码的 C++ 代码,我从中创建此代码

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

但这给了我以下错误

错误

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

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

我不确定它是否相关,但我的代码是托管的。

注意:在我开始工作之前,我试图不担心返回任何数据。

string

C++中与在 C# 中是不同的数据类型。请尝试改用System::String^