C#与JAVA Base64编码问题~图片不能还原?
情况是这样的:
C#调用JAVA的webservice,把数据插入系统数据库,其中有一个xml节点是图片的base64编码,封装成xml文档后,抛给webservice,导入成功后,oracle数据库中的图片是黑的,而且像矩阵式的方形点阵。
有点郁闷,一天了还是没有解决,想请教下大家,谢谢!
------解决方案--------------------最近也在做类似这样结构的系统。。但是还没涉及到图片的问题。。
是不是两边的编码不统一导致的。
你分析分析发过来的数据包。。
------解决方案--------------------JAVA中输出看看
http://topic.csdn.net/u/20090903/16/41cf7016-68a8-431f-a325-d383ac1b6c52.html
------解决方案--------------------什么叫做“图片的base64编码”?byte[]的base64编码这可以理解。但是图片的base64编码?你是否测试过你的byte[](base64编码之前的)可以反过来正确显示为图片?
------解决方案--------------------
这个地方要及时“打住”!
你得到的字节数组还是原来的图片吗?测试一下!写一个程序,把你的字节数组保存成文件,然后用一个看图片的程序打开看看。如果不是,你传给别人,别人可能无法。
------解决方案--------------------你在本机上试下 先编码 然后解码 看出错不
------解决方案--------------------
可以的 我也这样存图片 用强制转换可以转为BYTE[]
------解决方案--------------------用你base64之前的数据和oracle中存的数据比较一下。一样就没有问题了。
Base64编码解码都是标准,java和.net的支持都应该没有问题。
------解决方案--------------------
这说明问题在webService。
我刚才用JAVA编写了一个Base64转换的程序,和.NET的一起对比了下,都从同一个文件中读取前1024个字节进行Base64转换,转换后得到的字符串是一模一样的。这样你就应该可以排除在Base64转换上的问题了,而是要看webService怎么处理这二进制字符串(比如是否因为过长,自动截断了数据之类的)。