如题,
有一变量 byte[] infomsg;其内容是UCS2编码
如何能把它转成普通字符串

解决方案 »

  1.   

    System.Text.Encoding.Default.GetString(bySend);
    Default的位置改改
      

  2.   

    System.Text.Encoding.Unicode.GetString(infomsg);
      

  3.   

    是这样的
    别人函数返回一个变量  ret(Array message);
    其中内容的编码方式是UCS2
    我中程序中这样写
    byte[] msg=new byte[20];
    message.CopyTo(msg,0);
    string s=System.Text.Encoding.Unicode.GetString(msg);
    可我得到的s还是乱码
      

  4.   

    /// <param name="description"></param>
    /// <param name="userId"></param>
    public void creatNewFile(string strtitle,HtmlInputFile file)
    {
    Stream imgdatastream = file.PostedFile.InputStream;
    string fileName = System.IO.Path.GetFileName(file.PostedFile.FileName).Trim();
    int imgdatalen = file.PostedFile.ContentLength;
    string imgtype = file.PostedFile.ContentType;
    byte[] imgdata = new byte[imgdatalen];
    int n = imgdatastream.Read(imgdata,0,imgdatalen);
    DataBase db = new  DataBase();
    // DataSet ds ;
    db.Open();

    // Get Document ID
    double randomStr = new System.Random().NextDouble()* 1000000000;
    string docID = DateTime.Now.ToString("yyyyMMdd") + (Math.Floor(randomStr)).ToString(); if(imgdatalen ==0)
    {return;}
     // Insert File to DB
     string sql  = " INSERT INTO FILE2(TITLE,MARK) ";
    sql += " VALUES('"+DataBase.SqlItemTextChange(strtitle) +"',@imgdata)" ; SqlCommand command = new SqlCommand(sql,db.Connection ); SqlParameter paramData = new SqlParameter( "@imgdata", SqlDbType.Image );
    paramData.Value = imgdata;
    command.Parameters.Add( paramData ); try
    {
    // db.BeginTrans(); int numRowsAffected = command.ExecuteNonQuery(); if(numRowsAffected !=1)
    {
    throw new Exception("1012");
    }
    //db.CommitTrans();
    }
    catch(Exception ex)
    {
    db.RollBack();
    throw ex;
    }
    finally
    {
    db.Close();
    }
    } /// <summary>
    /// download File From Server's DB
    /// </summary>
    public void downloadFile()
    {
    DataBase db = null;
    System.IO.FileStream myFile = null;

    try
    {
    db= new DataBase();
    db.Open(); // DownLoad File
    string  sqlText  = " SELECT TITLE, MARK ";
    sqlText += " FROM   FILE2 ";

    SqlCommand cmd=new SqlCommand(sqlText,db.Connection);
    SqlDataReader rd;
                
    rd=cmd.ExecuteReader(); while(rd.Read())
    {
    // Orginal File Name
    string strtitle = rd["TITLE"].ToString(); string strfile = System.Text.Encoding.Default.GetString((byte[])rd["MARK"]);// Label1.Text = this.Server.HtmlEncode(strfile);
    // testArea.Value = this.Server.HtmlEncode(strfile); #endregion
    } rd.Close();
    db.Close();
    }
    catch(ApplicationException ex)
    {
    throw ex;
    }
    catch(Exception ex)
    {
    throw ex;
    }
    finally
    {
    // db.Close();
    }

    }
      

  5.   

    楼上的System.Text.Encoding.Default.GetString((byte[])rd["MARK"]);也没指明如何把USC2转换成可识别的字符串啊
    比如实际经过USC2编码的内容是"测试",可通过
    System.Text.Encoding.Unicode.GetString(infomsg);得到得到的却是"mK蠊",其中"蠊"是"女"旁,我打不出来:)