日期:2014-05-17  浏览次数:20847 次

关于string与byte转换的问题
我现在有个文件格式的结构是字符串和二进制数据组成,
现在是我要解析该文件,我是直接把该文件用字符串的形式读取到内存,
再进行解析,目前遇到的问题是那部分二进制数据由字符串转换不过去了,
我使用的Encoding里面的GetBytes函数,但是出来的数据和文件中实际的数据不对,
请问如何解决?是不是在读取字符串的时候数据已经被处理了啊,所以还原不过去?

------解决方案--------------------
先以二进制的格式读取出来,然后把字符串部分的转换为字符串,二进制的数据就不要转了!
------解决方案--------------------
会不会是 Encoding选的不对....读的时候,也可以指定编码的...
------解决方案--------------------
字符串转二进制,如果是字母啊,数字一类的字符串,一般用ascall码表对照着看看有没有转错,先把二进制转换成10进制在里面找就行了。(单字节)
                如果是汉字,就有很多种编码了,比如GB2321,utf8等。(双字节)
------解决方案--------------------
感觉好像有点像3G短信读取的问题,可以通过特定的移位来解决该问题,当然移位的格式要清楚。
------解决方案--------------------
这个应该是编码问题吧,使用Encoding.Unicode看看
------解决方案--------------------
Encoding几种编码都试试
------解决方案--------------------
你应该直接读取二进制数据,再解析每个byte...
------解决方案--------------------
你是要从二进制转换成字符串吧,那就不应该用GetBytes,而应该用GetString,当然,还得选择正确的编码,如果不知道原来的编码是什么,就一个一个试吧,如果是中文一般来说不是Utf8就是GB2312。