C#将byte[]转换为string

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[]类型值,如下:


语句


返回值


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 + "‘";

时间: 2024-10-05 00:14:21

C#将byte[]转换为string的相关文章

[utf8编码的byte[]数组转换为String时要注意的问题]

1. 通过socket给Java传递byte[]数组时,utf-8的字节数组在转换为String, Java并不会遇到0就停止结束,而是一直使用完byte[]的容量, 所以在转换为Java的String需要自己判断字节值是0的位置,再截取数组长度. [cpp] view plaincopyprint? public  static int searchByte(byte[] data, byte value) { int size = data.length; for (int i = 0; i

[Java]_[初级]_[utf8编码的byte[]数组转换为String时要注意的问题]

场景: 1. 通过socket给Java传递byte[]数组时,utf-8的字节数组在转换为String, Java并不会遇到0就停止结束,而是一直使用完byte[]的容量, 所以在转换为Java的String需要自己判断字节值是0的位置,再截取数组长度. public static int searchByte(byte[] data, byte value) { int size = data.length; for (int i = 0; i < size; ++i) { if (data

android 将图片通过base64转换为String 将图片String转换为Bitmap

1.Bitmap转换为图片字符串 Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher); ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); //该方法用来压缩图片,第一个参数为图片格式,第二个参数为截取图片的保留率,如当前为90,则保留之前图片90%的区域 bitmap.compress(Bitmap

Java - byte[] 和 String互相转换

通过用例学习Java中的byte数组和String互相转换,这种转换可能在很多情况需要,比如IO操作,生成加密hash码等等. 除非觉得必要,否则不要将它们互相转换,他们分别代表了不同的数据,专门服务于不同的目的,通常String代表文本字符串,byte数组针对二进制数据 通过String类将String转换成byte[]或者byte[]转换成String 用String.getBytes()方法将字符串转换为byte数组,通过String构造函数将byte数组转换成String 注意:这种方式

C#中的Byte,String,Int,Hex之间的转换函数。

/// <summary> Convert a string of hex digits (ex: E4 CA B2) to a byte array. </summary> /// <param name="s"> The string containing the hex digits (with or without spaces). </param> /// <returns> Returns an array of

C# Byte[] 转String 无损转换

转载请注明出处 http://www.cnblogs.com/Huerye/ /// <summary> /// string 转成byte[] /// </summary> /// <param name="hexString"></param> /// <returns>byte[]</returns> private byte[] strToToHexByte(string hexString) { hexS

C# byte[]与char[]、string与char[]、byte[] 与 string 互转

1. byte array -> char array Byte[] b=new byte[5]{0x01,0x02,0x03,0x04,0x05}; Char[] c=Encoding.ASCII.GetChars(b); 2. char array -> byte array Char[] c=new char[5]{a,b,c,d,e}; Byte[] b=Encoding.Default.GetBytes(c); Char[] c=new char[5]{a,b,c,d,e}; Byt

byte ---&gt; hex String

public static String byte2HexString(byte[] b){ String ret = ""; for(int i=0;i<b.lenght;i++){ String hex = Integer.toHexString(b[i]&0XFF); if(hex.length()==1){ hex = '0'+hex; } ret+=hex.toUpperCase(); } return ret; } 1  1个字节8位 1个BYTE与上2个he

Android - 资源(resource)转换为String

资源(resource)转换为String 本文地址: http://blog.csdn.net/caroline_wendy Android建议资源的动态绑定, 即把string写入资源内, 然后执行动态绑定. 有时需要把资源(resource)ID转换为相应的字符串String. 使用: String mystring = getResources().getString(R.string.mystring); 即可.