Utf 8 字符数组数据的解码
我有一个网格,我需要从中读取的顶点位置,但我可以得到一个缓冲区的数据,我似乎可以得到一个utf-8字符数组 目前我正在将缓冲区中的数据放入我遇到的数组中,并将其写入一个字符*中,但我无法正确解码,或者看起来是这样 以下代码从缓冲区读取dara:Utf 8 字符数组数据的解码,utf-8,uwp,c++-cli,Utf 8,Uwp,C++ Cli,我有一个网格,我需要从中读取的顶点位置,但我可以得到一个缓冲区的数据,我似乎可以得到一个utf-8字符数组 目前我正在将缓冲区中的数据放入我遇到的数组中,并将其写入一个字符*中,但我无法正确解码,或者看起来是这样 以下代码从缓冲区读取dara: char* GetDataFromIBuffer(Windows::Storage::Streams::IBuffer^ container) { unsigned int bufferLength = container->Length;
char* GetDataFromIBuffer(Windows::Storage::Streams::IBuffer^ container)
{
unsigned int bufferLength = container->Length;
auto dataReader = Windows::Storage::Streams::DataReader::FromBuffer(container);
Platform::Array<unsigned char>^ managedBytes =
ref new Platform::Array<unsigned char>(bufferLength);
dataReader->ReadBytes(managedBytes);
char * bytes = new char[bufferLength];
for (unsigned int i = 0; i < bufferLength; i++)
{
if (managedBytes[i] == '\0')
{
bytes[i] = '0';
}
else
{
bytes[i] = managedBytes[i];
}
}
}
char*GetDataFromIBuffer(Windows::Storage::Streams::IBuffer^容器)
{
unsigned int bufferLength=容器->长度;
自动dataReader=Windows::Storage::Streams::dataReader::FromBuffer(容器);
平台::阵列^managedBytes=
ref新平台::数组(缓冲区长度);
dataReader->ReadBytes(managedBytes);
char*bytes=新字符[bufferLength];
for(无符号整数i=0;i
我可以在调试模式下查看数据,但我需要一种方法使其可读并将其写入文件,在该文件中,我可以复制网格数据并在单独的程序中绘制网格
下图显示了可以在阵列中看到的阵列数据:小心不要混淆文本编码和数据类型 char是一种常用于缓冲区的类型,因为它有字节大小,但这并不意味着缓冲区中包含的数据是文本 调试视图似乎确认缓冲区中的数据不是文本,因为当解释为文本时,它会给出奇怪的字符,如“ÿ”、“^”等 UTF-8是一种编码unicode文本的方法,因此它与二进制数据无关
<>你需要找到一种方法来把你的缓冲区数据信息转换为内部数据类型,它应该被记录在你得到数据的地方(也许只是漂浮的数组)?/p>这看起来是C++ + CLI,而不是C++。请正确地标注你的问题。我只关心C++部分,所以我更新了代码示例以使它更清楚。对我来说,重要的部分是将managedBytes放在一个char*中,这个char*表示我需要的数据。自从