求教:C#  base64binary 解码  成 String现有SMS的webservices返回的res2.msgContent值,类型为base64binary ,如何转成String类型?本人非.net程序员,临时接手此事,求教各位,不胜感激!
在线等!

解决方案 »

  1.   

    string str =  System.Text.Encoding.Default.GetString(Convert.FromBase64String("内容
    "));
      

  2.   

    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
      

  3.   


    byte[] sByte = Convert.FromBase64String(base64);
    string s = System.Text.Encoding.ASCII.GetString(sByte);
      

  4.   

    用了你的代码,仍然报错:
    出错信息:
    错误 1 与“System.Convert.FromBase64String(string)”最匹配的重载方法具有一些无效参数 错误 2 参数“1”: 无法从“byte[]”转换为“string”
      

  5.   

     byte[] data=Convert.FromBase64String(data);
    这是解码
    那还要看你的string 是什么格式的.UTF8:
    string str= System.Text.Encoding.UTF8.GetString(data);其他格式类似
      

  6.   

    res2.msgContent值是字节数组,注意转换顺序...
    Convert.ToBase64String(System.Text.Encoding.ASCII.GetString(res2.msgContent))
      

  7.   

                        byte[] sByte = Convert.FromBase64String(res2.msgContent);
                        result2 = System.Text.Encoding.ASCII.GetString(sByte);原始数据res2.msgContent是base64Binary类型的,
    是这行报错:byte[] sByte = Convert.FromBase64String(res2.msgContent);    无法从“byte[]”转换为“string”
      

  8.   

    更正...应该这样...
    System.Text.Encoding.Default.GetString(Convert.FromBase64String(System.Text.Encoding.ASCII.GetString(res2.msgContent))
      

  9.   

    string result2 = Convert.ToBase64String(System.Text.Encoding.ASCII.GetString(res2.msgContent));郁闷,仍然是这两个错误:
    出错信息:
    错误 1 与“System.Convert.FromBase64String(string)”最匹配的重载方法具有一些无效参数  
    错误 2 参数“1”: 无法从“byte[]”转换为“string”
      

  10.   

    res2.msgContent
    到底是什么格式?
      

  11.   

    根据错误来看是byte[]数组.
      

  12.   

    try:string str = 
    System.Text.Encoding.Default.GetString(res2.msgContent);
      

  13.   

    string result2 = System.Text.Encoding.Default.GetString(Convert.FromBase64String(System.Text.Encoding.ASCII.GetString(res2.msgContent)));执行了一下,弹出了:Base-64 字符串中的无效字符,是什么原因呢?
      

  14.   

    <xsd:element name="msgContent" type="xsd:base64Binary" minOccurs="1" maxOccurs="1">
    是base64Binary类型的数组。
      

  15.   

    XML数据都是字符串啊,哪儿来的字节数组...贴一段数据实例看看...
      

  16.   

    XML数据都是字符串啊,哪儿来的字节数组...贴一段数据实例看看...
    ======>
    代理类给转化了,你看他的错误信息就知道是byte[]了.
      

  17.   

    各位大侠,可怎么是好!怎么处理啊,base64二进制数组,如何转成string啊
      

  18.   

    在C#中到底是什么类型?base64Binary是服务端定义的类型,你看看程序中是什么类型?
      

  19.   

    是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");
                }
            }
      

  20.   

    你不要用代理类请求一份数据,看看msgContent节的内容...再用代理类获取相同的数据,把msgContent用System.Text.Encoding.Default.GetString转换为字符串...然后对比一下,或者都贴上来大家帮你分析...不能让我们靠猜的...
      

  21.   

    string str =  
    System.Text.Encoding.Default.GetString(res2.msgContent); 
     
      

  22.   

    以下是移动公司帮截的msgContent中的内容,也即base64类型:
     
     
    dMUNAAfRABxkZWxpdnJkMTAwN
    zA5MTYzNzEwMDcwOTE2MzcxMz
    gxMDAwMTEwMAAAAAAAAAAAAAAAAAAA
      

  23.   

    原本是在一行的,CSDN回帖提示说其中有非法字符,只好换行才发出去了。
      

  24.   

      public string DecodeBase64(string code)
            {
                string decode = "";
                try
                {
                    byte[] bytes = Convert.FromBase64String(code);
                    decode = Encoding.UTF8.GetString(bytes);
                }
                catch
                {
                    decode = code;
                }
                return decode;
            }
      

  25.   

    delivrd1007091637100709163713810001100
      

  26.   

        string str = " dMUNAAfRABxkZWxpdnJkMTAwNzA5MTYzNzEwMDcwOTE2MzcxMzgxMDAwMTEwMAAAAAAAAAAAAAAAAAAA";
                string str1 = System.Text.Encoding.Default.GetString( Convert.FromBase64String(str));
                str1 = str1.TrimEnd('\0');//但是你的string以t\0开头的。
      

  27.   

    服务器端,读取路径 http://localhost/imageput/an_1328159468-39.jpg 下的图片,进行编码变成类似:
    version="1.0"?>
    <base64Binary>/f32oHm5sH93PVwHPK93fTsvfn53/NzWbT5n9/f3</base64Binary>
    这种格式,怎么写呢
      

  28.   

    我的提问链接地址是:http://bbs.csdn.net/topics/390408695,不知道楼主是否解决了这个问题!