将存储在字符串中的字节数组强制转换为字节数组

本文关键字:数组 字节数 字节 转换 存储 字符串 | 更新日期: 2023-09-27 18:10:45

我正在接收一个字节数组,表示pdf作为xml节点的一部分。

字节数组在XML中看起来像这样

<Document>
Xh0XQo+PgovVHlwZSAvDAwIG4gCjAwMDAxNTc0MjkgMDAwMDAgbiAKMDAwMDE1ODQ1NSAwMDAwMCBuIAowMDAwMTU5MzY1IDAwMDAwIG4gCjAwMDAxNTk2MjEgMDATg5MyAwMDAwMCBuIAowMDAwMTYwMTQzIDAwMDAwIG4gCjAwMMDE2MDYzNSAwMDAwMCBuIAowMDAwMTYwODk5IDAwMDAwIG4gCjAwMDAxNNTkgMDAwMDAgbiAwMDE2NDkxMiAwMDAwMCBuIAowMDAwMTY1MTwMDAwIG4gCjAwMDAxNjU0MzYgMDAwMDE2NTUyMyAwMDAwMCBuIAowMDAwMTY1NzA5IDAwMDAwIG4gCjAwMDAxNjU5MjcgMDAwMDAgbiAKMDA4MTg3OSAwMDAwMCBuIAowMMTgxOTc4IDAwMDAwIG4gCnRyYWlsZXIKPDwvU2l6ZSAxMTMxCi9Sb290IDEgMCBSCi9JbmZvIDMgMCBSCi9JRCBbPDgyMTQwQURDM0QwOTRCREZBODI2MjM4Q0VBM0YxODA3PiA8ODIxNDBBREMzRDA5NEJERkE4MjYyMzhDRUEzRjE4MDc+XQovRW5jcnlwdCA0IDAgUgo+PgpzdGFydHhyZWYKMTgyMDEzCiUlRU9GCg...........</Document>

所以我首先将bytearray复制到一个字符串变量中。

 string pdfbyte = GetNodeUsingXpath(xpath.....);

现在我想把这个pdfbyte转换成一个字节数组。

 byte[] output = (byte[])pdfbyte;
 byte[]  output = byte.parse(pdfbyte);

这些没用

我在网上找过,但找不到一个简单的解决方案来转换存储在字符串变量中的字节数组到字节数组。任何提示都会有帮助的。

基本上,我想将作为xml的一部分发送的bytearray复制到

将存储在字符串中的字节数组强制转换为字节数组

如果XML文档中有二进制数据,我希望是base64编码的。文本数据和二进制数据是不同的,你不应该试图直接在字符串中存储任意的二进制数据。

如果是,你可以使用:

string base64 = GetNodeUsingXpath(xpath.....); 
byte[] output = Convert.FromBase64String(base64);

你可能会发现你需要先修剪字符串:

byte[] output = Convert.FromBase64String(base64.Trim());

如果是而不是 base64,则需要仔细查看文本的样子。也可能是十六进制,尽管可能性不大。如果有人刚开始使用Encoding.GetString(bytes),那么该代码将需要修复,并且几乎可以保证丢失数据。

编辑:现在我们可以看到一些数据,它确实看起来像base64。