当前位置:编程学习 > C#/ASP.NET >>

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 {   
        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();   
    }
--------------------编程问答-------------------- 二三楼的方法试过了,不行,和我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"

--------------------编程问答--------------------
引用 5 楼 wxr0323 的回复:
C# code

public static String strToBinary(String str) throws UnsupportedEncodingException {   
        StringBuffer sBuffer = new StringBuffer();   
        byte[] strBytes = str.getBytes();    
……

getbyte缺少引用,这是asp.net语言吗? --------------------编程问答-------------------- Encoding.Default <- 这是啥编码? --------------------编程问答--------------------
引用 7 楼 zhangqiong0129 的回复:
引用 5 楼 wxr0323 的回复:
C# code

public static String strToBinary(String str) throws UnsupportedEncodingException {
StringBuffer sBuffer = new StringBuffer();
byte[] strBytes = str.getBytes();
……
……

回错贴了。
sorry!~ --------------------编程问答--------------------
引用 8 楼 karascanvas 的回复:
Encoding.Default <- 这是啥编码?

asp.net的转换的,具体的我也不知道,你可以不用这种,反正能读取到我想要的值就是好方法! --------------------编程问答--------------------
引用 9 楼 wxr0323 的回复:
引用 7 楼 zhangqiong0129 的回复:

引用 5 楼 wxr0323 的回复:
C# code

public static String strToBinary(String str) throws UnsupportedEncodingException {
StringBuffer sBuffer = new StringBuffer();
byte[] str……


那也帮我解决一下,写了一天了也没找到办法解决掉,愁死我了,谢谢。也谢谢各位 --------------------编程问答-------------------- 你得先知道原来字符串是用什么编码的,才能用对应的编码把byte[]转换为string --------------------编程问答--------------------
引用 12 楼 karascanvas 的回复:
你得先知道原来字符串是用什么编码的,才能用对应的编码把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);
}
--------------------编程问答--------------------
引用 14 楼 c5662601 的回复:
你这有可能存的是个文件 比如是个图片
建议以流的方式读取

C# code

using (FileStream fs = new FileStream("生成的路径......temp/aaa.jpg",System.IO.FileMode.Create,System.IO.FileAccess.Write))
{
byte[] temp =Convert .FromBase64S……


只能说类似
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,