本文告诉大家在 UWP 如何转换 IBuffer 为 string 和 stream 类
byte 数组转 IBuffer
使用下面代码可以将 byte 数组转 IBuffer
using System.Runtime.InteropServices.WindowsRuntime;
byte[] byteList = xx;
IBuffer buffer = byteList.AsBuffer();
这里的 AsBuffer 是扩展方法所以需要使用 using 的方法
using System.Runtime.InteropServices.WindowsRuntime;
IBuffer buffer = xx;
var byteList = buffer.ToArray();
string 转 IBuffer
可以使用两个方式,第一个方式是将 string 转换为 byte 数组,请看代码
using System.Text;
byteList = Encoding.UTF8.GetBytes(str);
从数组转 string 的方法请看下面
using System.Text;
var str = Encoding.UTF8.GetString(byteList);
转换为 byte 数组就可以使用上面的方法转换为 IBuffer 但是在这样可以看到方法的代码有些多,可以使用下面的方法快速转换
通过 CryptographicBuffer 类可以将 string 转换为 IBuffer 请看代码
using Windows.Security.Cryptography;
IBuffer buffer = CryptographicBuffer.ConvertStringToBinary(str, BinaryStringEncoding.Utf8);
str = CryptographicBuffer.ConvertBinaryToString(BinaryStringEncoding.Utf8, buffer);
本文会经常更新,请阅读原文: https://dotnet-campus.github.io//post/UWP-%E8%BD%AC%E6%8D%A2-IBuffer-%E5%92%8C%E5%85%B6%E4%BB%96%E7%B1%BB%E5%9E%8B.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名 lindexi (包含链接: https://dotnet-campus.github.io/ ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系 。