最近公司要做一个操作日志的模块,如果将操作日志以字符串的形式存到后台数据库,非常浪费内存,不可取,特意写了字符串与二进制相互转换的函数。
1、字符串转二进制
private string StringToBinary(string str)
{
byte[] data = Encoding.Unicode.GetBytes(str);
StringBuilder sb = new StringBuilder(data.Length*);
foreach (byte item in data)
{
sb.Append(Convert.ToString(item,).PadLeft(,''));
}
return sb.ToString();
}
2、二进制转字符串
private string BinaryToString(string str)
{
System.Text.RegularExpressions.CaptureCollection cs = System.Text.RegularExpressions.Regex.Match(str,@"([01]{8})+").Groups[].Captures;
byte[] data = new byte[cs.Count];
for (int i = ; i < cs.Count; i++)
{
data[i] = Convert.ToByte(cs[i].Value,);
}
return Encoding.Unicode.GetString(data,,data.Length);
}
下面随便写了一条Sql语句,便于测试两者是否转换成功?
转码成功!