简体   繁体   English

如何将序列化字节数组转换回其文本形式

[英]How to convert serialized byte array back to its text form

I have a text that is a property of an object.The object gets XmlSerialized and after that there is an element in the XML call Text that represents the text from the object.I am wondering how to turn it back to string. 我有一个文本,它是一个对象的属性。对象获取XmlSerialized,然后在XML调用Text中有一个元素代表对象的文本。我想知道如何将其转回字符串。

THE TYPE OF SERIALIZATION : XmlSerializer serizlizer = new XmlSerializer(typeof(Act)); XmlSerializer serizlizer = new XmlSerializer(typeof(Act)); 化类型XmlSerializer serizlizer = new XmlSerializer(typeof(Act));

THE PROPERTY IN THE CLASS : 课程中的财产

[System.Runtime.Serialization.OptionalFieldAttribute()]
private byte[] ActTextField;

In the xml file it looks something like that: 在xml文件中,它看起来像这样:

0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAABAAAALQAAAAAAAAAAEAAALwAAAAEAAAD+////AAAAACwAAAD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////spcEAJ2AJBAAA8BK/AAAAAAAAEAAAAAAABgAAYB4AAA4AYmpiavbg9uAAAAAAAAAAAAAAAAAAAAAAAAACBBYALiIAAJSKAQCUigEAzwYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//w8AAAAAAAAAAAD//w8AAAAAAAAAAAD//w8AAAAAAAAAAAAAAAAAAAAAAKQAAAAAANADAAAAAAAA0AMAANADAAAAAAAA0AMAAAAAAADQAwAAAAAAANADAAAAAAAA0AMAABQAAAAAAAAAAAAAAOQDAAAAAAAArAgAAAAAAACsCAAAAAAAAKwIAAAAAAAArAgAABQAAADACAAAFAAAAOQDAAAAAAAA/+DgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADg4AABYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAIAAAAAAAA4AgAAAAAAADgCAAAAAAAAP0OAAAAAAAA4AgAAAAAAADgCAAAAAAAAOAIAAAAAAAA4AgAAAAAAAAAAAAAAAAAAOQDAAAAAAAA5AMAAAAAAADkAwAAJAMAAAgHAACkAQAA5AMAAAAAAADkAwAAAAAAAOQDAAAAAAAACAcAAAAAAADkAwAAAAAAAOQDAAAAAAAA5AMAAAAAAADQAwAAAAAAANADAAAAAAAA0AMAAAAAAADQAwAAAAAAANADAAAAAAAA0AMAAAAAAAD/////+BCAAQQRKBDQENQQxBD0EPgQgADcEMARBBDUENAQwBD0EOAQ1BCAAPQQwBCAANAQyBDAENAQ1BEEENQRCB

I can not even suppose what is its encoding and how to decode it.I tried to read it into byte array but it didn't actualy work after applying few decodings Encode.UTF8 , Encode.ASCII, 我甚至无法想象它的编码是什么以及如何解码它。我试着将它读入字节数组但是在应用了几个解码Encode.UTF8,Encode.ASCII之后它没有实际工作

That looks like Base64 to me - just use 对我来说,这看起来像Base64 - 只需使用

byte[] data = Convert.FromBase64String(base64Text);

It's odd that it's using base64 at all if this is really a text property though. 奇怪的是,如果它真的是一个文本属性,它根本就在使用base64。 I'd expect just the text. 我只期待文本。

To convert that binary data back to text you would need to know which encoding was used to convert it to the binary data to start with - and UTF-8 is the most likely - but all the repeated AAAAA... parts in there make this look pretty unlike text, to be honest. 要将二进制数据转换回文本,您需要知道使用哪种编码将其转换为二进制数据开始 - 而UTF-8最有可能 - 但是所有重复的AAAAA...部分都在这里老实说,看起来很像文字。

EDIT: Now that we've seen the field declaration, we can see that it was a byte[] to start with, so that makes sense for it to be encoded in this way. 编辑:现在我们已经看到了字段声明,我们可以看到它是一个byte[]开始,所以有意义的是它以这种方式编码。 Judging by comments, it sounds like it's actually a Word file - at which point extracting the text is a very separate problem. 从评论来看,听起来它实际上是一个Word文件 - 此时提取文本是一个非常独立的问题。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM