求教:C# base64binary 解码 成 String 求教:C# base64binary 解码 成 String现有SMS的webservices返回的res2.msgContent值,类型为base64binary ,如何转成String类型?本人非.net程序员,临时接手此事,求教各位,不胜感激!在线等! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 string str = System.Text.Encoding.Default.GetString(Convert.FromBase64String("内容")); string result2 = System.Text.Encoding.Default.GetString(Convert.FromBase64String(res2.msgContent));出错信息:错误 1 与“System.Convert.FromBase64String(string)”最匹配的重载方法具有一些无效参数 C:\Documents and Settings\Administrator.WINNER\桌面\SMS\SMS\API.cs 127 70 SMS错误 2 参数“1”: 无法从“byte[]”转换为“string” C:\Documents and Settings\Administrator.WINNER\桌面\SMS\SMS\API.cs 127 95 SMS byte[] sByte = Convert.FromBase64String(base64);string s = System.Text.Encoding.ASCII.GetString(sByte); 用了你的代码,仍然报错:出错信息:错误 1 与“System.Convert.FromBase64String(string)”最匹配的重载方法具有一些无效参数 错误 2 参数“1”: 无法从“byte[]”转换为“string” byte[] data=Convert.FromBase64String(data);这是解码那还要看你的string 是什么格式的.UTF8:string str= System.Text.Encoding.UTF8.GetString(data);其他格式类似 res2.msgContent值是字节数组,注意转换顺序...Convert.ToBase64String(System.Text.Encoding.ASCII.GetString(res2.msgContent)) byte[] sByte = Convert.FromBase64String(res2.msgContent); result2 = System.Text.Encoding.ASCII.GetString(sByte);原始数据res2.msgContent是base64Binary类型的,是这行报错:byte[] sByte = Convert.FromBase64String(res2.msgContent); 无法从“byte[]”转换为“string” 更正...应该这样...System.Text.Encoding.Default.GetString(Convert.FromBase64String(System.Text.Encoding.ASCII.GetString(res2.msgContent)) string result2 = Convert.ToBase64String(System.Text.Encoding.ASCII.GetString(res2.msgContent));郁闷,仍然是这两个错误:出错信息:错误 1 与“System.Convert.FromBase64String(string)”最匹配的重载方法具有一些无效参数 错误 2 参数“1”: 无法从“byte[]”转换为“string” res2.msgContent到底是什么格式? 根据错误来看是byte[]数组. try:string str = System.Text.Encoding.Default.GetString(res2.msgContent); string result2 = System.Text.Encoding.Default.GetString(Convert.FromBase64String(System.Text.Encoding.ASCII.GetString(res2.msgContent)));执行了一下,弹出了:Base-64 字符串中的无效字符,是什么原因呢? <xsd:element name="msgContent" type="xsd:base64Binary" minOccurs="1" maxOccurs="1">是base64Binary类型的数组。 XML数据都是字符串啊,哪儿来的字节数组...贴一段数据实例看看... XML数据都是字符串啊,哪儿来的字节数组...贴一段数据实例看看...======>代理类给转化了,你看他的错误信息就知道是byte[]了. 各位大侠,可怎么是好!怎么处理啊,base64二进制数组,如何转成string啊 在C#中到底是什么类型?base64Binary是服务端定义的类型,你看看程序中是什么类型? 是byte[] 类型 [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, DataType="base64Binary", Order=11)] public byte[] msgContent { get { return this.msgContentField; } set { this.msgContentField = value; this.RaisePropertyChanged("msgContent"); } } 你不要用代理类请求一份数据,看看msgContent节的内容...再用代理类获取相同的数据,把msgContent用System.Text.Encoding.Default.GetString转换为字符串...然后对比一下,或者都贴上来大家帮你分析...不能让我们靠猜的... string str = System.Text.Encoding.Default.GetString(res2.msgContent); 以下是移动公司帮截的msgContent中的内容,也即base64类型: dMUNAAfRABxkZWxpdnJkMTAwNzA5MTYzNzEwMDcwOTE2MzcxMzgxMDAwMTEwMAAAAAAAAAAAAAAAAAAA 原本是在一行的,CSDN回帖提示说其中有非法字符,只好换行才发出去了。 public string DecodeBase64(string code) { string decode = ""; try { byte[] bytes = Convert.FromBase64String(code); decode = Encoding.UTF8.GetString(bytes); } catch { decode = code; } return decode; } delivrd1007091637100709163713810001100 string str = " dMUNAAfRABxkZWxpdnJkMTAwNzA5MTYzNzEwMDcwOTE2MzcxMzgxMDAwMTEwMAAAAAAAAAAAAAAAAAAA"; string str1 = System.Text.Encoding.Default.GetString( Convert.FromBase64String(str)); str1 = str1.TrimEnd('\0');//但是你的string以t\0开头的。 服务器端,读取路径 http://localhost/imageput/an_1328159468-39.jpg 下的图片,进行编码变成类似:version="1.0"?><base64Binary>/f32oHm5sH93PVwHPK93fTsvfn53/NzWbT5n9/f3</base64Binary>这种格式,怎么写呢 我的提问链接地址是:http://bbs.csdn.net/topics/390408695,不知道楼主是否解决了这个问题! 如何从数据表读取一个字段到一个string里吗? 数据库树形结构遍历效率讨论 为什么不执行if 而直接执行else 串口通信中的多线程问题 求《c#编程起步》(人民邮电出版社)这本书,找到马上结帖。 usbkey,epass2000ft11开发问题 如何给一个文件夹付权限? 问一个数据类型的小问题 急!请教如何在C#中对串口进行开发!使用MSCOMM控件好象有问题!谢谢!! 如何打开一个URL??比如我要读取"http://msdn.microsoft.com/library/default.asp",应该怎么办?? 打开ORACLE表出错 正则表达式 在线等 求助
"));
错误 1 与“System.Convert.FromBase64String(string)”最匹配的重载方法具有一些无效参数 C:\Documents and Settings\Administrator.WINNER\桌面\SMS\SMS\API.cs 127 70 SMS
错误 2 参数“1”: 无法从“byte[]”转换为“string” C:\Documents and Settings\Administrator.WINNER\桌面\SMS\SMS\API.cs 127 95 SMS
byte[] sByte = Convert.FromBase64String(base64);
string s = System.Text.Encoding.ASCII.GetString(sByte);
出错信息:
错误 1 与“System.Convert.FromBase64String(string)”最匹配的重载方法具有一些无效参数 错误 2 参数“1”: 无法从“byte[]”转换为“string”
这是解码
那还要看你的string 是什么格式的.UTF8:
string str= System.Text.Encoding.UTF8.GetString(data);其他格式类似
Convert.ToBase64String(System.Text.Encoding.ASCII.GetString(res2.msgContent))
result2 = System.Text.Encoding.ASCII.GetString(sByte);原始数据res2.msgContent是base64Binary类型的,
是这行报错:byte[] sByte = Convert.FromBase64String(res2.msgContent); 无法从“byte[]”转换为“string”
System.Text.Encoding.Default.GetString(Convert.FromBase64String(System.Text.Encoding.ASCII.GetString(res2.msgContent))
出错信息:
错误 1 与“System.Convert.FromBase64String(string)”最匹配的重载方法具有一些无效参数
错误 2 参数“1”: 无法从“byte[]”转换为“string”
到底是什么格式?
System.Text.Encoding.Default.GetString(res2.msgContent);
是base64Binary类型的数组。
======>
代理类给转化了,你看他的错误信息就知道是byte[]了.
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, DataType="base64Binary", Order=11)]
public byte[] msgContent {
get {
return this.msgContentField;
}
set {
this.msgContentField = value;
this.RaisePropertyChanged("msgContent");
}
}
System.Text.Encoding.Default.GetString(res2.msgContent);
dMUNAAfRABxkZWxpdnJkMTAwN
zA5MTYzNzEwMDcwOTE2MzcxMz
gxMDAwMTEwMAAAAAAAAAAAAAAAAAAA
{
string decode = "";
try
{
byte[] bytes = Convert.FromBase64String(code);
decode = Encoding.UTF8.GetString(bytes);
}
catch
{
decode = code;
}
return decode;
}
string str1 = System.Text.Encoding.Default.GetString( Convert.FromBase64String(str));
str1 = str1.TrimEnd('\0');//但是你的string以t\0开头的。
version="1.0"?>
<base64Binary>/f32oHm5sH93PVwHPK93fTsvfn53/NzWbT5n9/f3</base64Binary>
这种格式,怎么写呢