如何在 Visual C 中使用 UTF8Encoding
我需要将下面的 C# 代码更改为 C++ 代码。
public static byte[] StrToByteArray(string str)
{
System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
return encoding.GetBytes(str);
}
在此网站上我发现我从中创建此代码的 UTF8Encoding 的 C++ 代码,
void StrToByteArray(string unicodeString)
{
UTF8Encoding^ utf8 = gcnew UTF8Encoding;
array<Byte>^encodedBytes = utf8->GetBytes( unicodeString );
}
但这给了我以下错误
错误 2 错误 C2664:'cli::array ^系统::文本::编码::GetBytes(cli::array ^)' : 无法将参数 1 转换为 'std::string' 到 'cli::数组
为什么要这样做,而它与文档相同? (除了我使用普通字符串,但使用顶级字符串^会给我一个错误。)
我不确定它是否相关,但我的代码是托管的。
注意:我尝试不担心返回任何数据,直到我开始工作。
I need to change the below c# code to c++ code.
public static byte[] StrToByteArray(string str)
{
System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
return encoding.GetBytes(str);
}
on this website i found the c++ code for UTF8Encoding from which i created this code
void StrToByteArray(string unicodeString)
{
UTF8Encoding^ utf8 = gcnew UTF8Encoding;
array<Byte>^encodedBytes = utf8->GetBytes( unicodeString );
}
but this gives me the following error
Error 2 error C2664: 'cli::array
^System::Text::Encoding::GetBytes(cli::array
^)' : cannot convert parameter 1 from
'std::string' to
'cli::array
Why would it do this while it is identical to the documentation? (except i am using a normal string, but using a top level string^ gives me an error on that.)
i'm not sure if it is related but my code is managed.
note: i tried not worrying yet about returning any data till i get this working.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
string
是 C++ 中与 C# 中不同的数据类型。尝试使用System::String^
代替。string
is a different data type in C++ as it is in C#. Try usingSystem::String^
instead.