码迷,mamicode.com
首页 > 其他好文 > 详细

C#将byte[]转换为string

时间:2014-09-11 12:31:21      阅读:249      评论:0      收藏:0      [点我收藏+]

标签:http   io   os   ar   for   数据   div   sp   on   

A、 首先列出网上搜索的一些信息:

方法1:

System.Text.UnicodeEncoding converter = new System.Text.UnicodeEncoding();

byte[] inputBytes =converter.GetBytes(inputString);

string inputString = converter.GetString(inputBytes);

方法2:

string inputString = System.Convert.ToBase64String(inputBytes);

byte[] inputBytes = System.Convert.FromBase64String(inputString);

 

B、接着列出一些调试中出现的错误现象:

获取的byte[]类型值,如下:

bubuko.com,布布扣

 

语句

返回值

APPID = reader_ApplicationID.GetValue(0)as string;

null

APPID =System.Convert.ToString(arrAPPID);

System.Byte[]

APPID =System.Convert.ToBase64String(arrAPPID);

KWB+Au5GRKGZ3XDuHSf9tA==

System.Text.UnicodeEncoding convert =new System.Text.UnicodeEncoding();

APPID =convert.GetString(arrAPPID);

)`~ u-26603 ?D輕?‘

(乱码)

APPID =Encoding.Default.GetString(arrAPPID);

)`~ u-26603 ?D輕?‘

(乱码)

 

查看数据表,Oracle数据库表中存储的值为:29607E02EE4644A199DD70EE1D27FDB4

分析存储结果为十六进制字符,编写函数实现byte[]转换成十六进制string功能即可。

private string Byte2String(byte[] arrByte)

{

    StringBuilder sb = new StringBuilder();

    foreach (byte b in arrByte)

    {

        sb.Append(b > 15 ? Convert.ToString(b, 16) : ‘0‘ +Convert.ToString(b, 16));

    }

    return sb.ToString();

}

调用此函数实现byte[]到string的转换,因为数据表中存储值为大写,所以利用ToUpper()方法转换下得到。

APPID = Byte2String(arrAPPID).ToUpper();

 

(3)   根据获取的string类型值,进行进一步的操作,例如:

OracleCommand cmd_UserID = conn.CreateCommand();

cmd_UserID.CommandType = CommandType.Text;

cmd_UserID.CommandText = "select USERID from ORA_ASPNET_USERS where LOWEREDUSERNAME=‘" + userName.ToLower() + "‘ and APPLICATIONID=‘" + APPID + "‘";

 

C#将byte[]转换为string

标签:http   io   os   ar   for   数据   div   sp   on   

原文地址:http://www.cnblogs.com/lschenblog/p/3966189.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!