asp.net byte[]转换为string,读取的问题。代码放上去了,大家帮忙解决一下!
我在web端存入了sd换行后写入kk,存储为base64字符乱码。读取后,根据这两句byte[] temp =Convert .FromBase64String ( chart.ChartTitle);s = Encoding.Default.GetString(temp, 0, temp.Count()).ToString ();chart.ChartTitle就是读取到的乱码。转换完了就出了这玩意:"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0sd\0\0\0kk\v"怎么读取到sd和kk呢 --------------------编程问答-------------------- 代码有点乱。。。 --------------------编程问答--------------------Encoding encode = Encoding.UTF8;--------------------编程问答--------------------
string s = "测试数据....";
byte[] wf = encode.GetBytes(s);
s = encode.GetString(wf);
//得到byte数组
byte[] strByte = System.Text.Encoding.Default.GetBytes(strString);
//byte数组转换成string
strString = System.Text.Encoding.Default.GetString(strByte);
你这样转化看看,应该就不会有错了。 --------------------编程问答-------------------- 那我再重新写一遍
我在web端存入了sd换行后写入kk,存储为base64字符乱码。
读取后,根据这两句byte[] temp =Convert .FromBase64String ( chart.ChartTitle);
s = Encoding.Default.GetString(temp, 0, temp.Count()).ToStrin(); chart.ChartTitle就是读取到的乱码。转换完了就出了这玩意:
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0sd\0\0\0kk\v"
怎么读取到sd和kk呢
数据库的存储是xml存储的,节点是:<Property name="ChartTitle"> <Binary>AAEAAAD/////AQAAAAAAAAARAQAAAAIAAAAGAgAAAAJzZAYDAAAAAmtrCw==</Binary>
</Property>
就是从这乱码中转换后分别读取到sd和kk。 --------------------编程问答--------------------
public static String strToBinary(String str) throws UnsupportedEncodingException {--------------------编程问答-------------------- 二三楼的方法试过了,不行,和我s = Encoding.Default.GetString(temp, 0, temp.Count()).ToStrin();这样得到的数据是一样的。还是"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0sd\0\0\0kk\v"
StringBuffer sBuffer = new StringBuffer();
byte[] strBytes = str.getBytes();
char[] tempArr = str.toCharArray();
for (char c : tempArr) {
sBuffer.append(Integer.toBinaryString((int)c)).append(" ");
}
return sBuffer.toString();
}
public static String binaryToStr(String strBinary) throws NumberFormatException{
StringBuffer sBuffer = new StringBuffer();
String[] strArr = strBinary.split(" ");
for (String string : strArr) {
sBuffer.append((char)Integer.parseInt(string, 2));
}
return sBuffer.toString();
}
--------------------编程问答--------------------
getbyte缺少引用,这是asp.net语言吗? --------------------编程问答-------------------- Encoding.Default <- 这是啥编码? --------------------编程问答--------------------
回错贴了。
sorry!~ --------------------编程问答--------------------
asp.net的转换的,具体的我也不知道,你可以不用这种,反正能读取到我想要的值就是好方法! --------------------编程问答--------------------
那也帮我解决一下,写了一天了也没找到办法解决掉,愁死我了,谢谢。也谢谢各位 --------------------编程问答-------------------- 你得先知道原来字符串是用什么编码的,才能用对应的编码把byte[]转换为string --------------------编程问答--------------------
他们说是base64,这是原来数据库存好的,不能改呀! --------------------编程问答-------------------- 你这有可能存的是个文件 比如是个图片
建议以流的方式读取
using (FileStream fs = new FileStream("生成的路径......temp/aaa.jpg",System.IO.FileMode.Create,System.IO.FileAccess.Write))--------------------编程问答--------------------
{
byte[] temp =Convert .FromBase64String ( chart.ChartTitle);
fs.Write(temp ,0,temp .Length);
}
只能说类似
补充:.NET技术 , ASP.NET