C#中如何把byte[]类型的UCS2编码内容转换为字符串string 如题,有一变量 byte[] infomsg;其内容是UCS2编码如何能把它转成普通字符串 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 System.Text.Encoding.Default.GetString(bySend);Default的位置改改 System.Text.Encoding.Unicode.GetString(infomsg); 是这样的别人函数返回一个变量 ret(Array message);其中内容的编码方式是UCS2我中程序中这样写byte[] msg=new byte[20];message.CopyTo(msg,0); string s=System.Text.Encoding.Unicode.GetString(msg);可我得到的s还是乱码 /// <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(); } } 楼上的System.Text.Encoding.Default.GetString((byte[])rd["MARK"]);也没指明如何把USC2转换成可识别的字符串啊比如实际经过USC2编码的内容是"测试",可通过System.Text.Encoding.Unicode.GetString(infomsg);得到得到的却是"mK蠊",其中"蠊"是"女"旁,我打不出来:) DropdownList无法赋值 ListView能否批量选中后修改呢?见下文 这种情况使用什么设计模式? 运算符重载的例子,总是测试不过去 viewstate中dataset问题 请教泛解析余名cert认证的解决 如果读取blob c#中的事件 关于C#中的TcpClient类 在DATAGRID中的模板列中添加了一个CHECKBOX却不知道怎样引发它的CHECKED事件? (缥缈孤风)大侠请进!数据到更新问题 如何停止运行中的指定的com+组件?
Default的位置改改
别人函数返回一个变量 ret(Array message);
其中内容的编码方式是UCS2
我中程序中这样写
byte[] msg=new byte[20];
message.CopyTo(msg,0);
string s=System.Text.Encoding.Unicode.GetString(msg);
可我得到的s还是乱码
/// <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();
}
}
比如实际经过USC2编码的内容是"测试",可通过
System.Text.Encoding.Unicode.GetString(infomsg);得到得到的却是"mK蠊",其中"蠊"是"女"旁,我打不出来:)