14 个解决方案
#1
MemoryStream m;
///...
StringBuilder sb = new StringBuilder()
StringWriter sw = new StringWriter (sb);
m.WriteTo(sw);
sw.Close();
string s = sb.ToString();
or
string s = System.Text.Encoding.Default.GetString(m.ToArray());
///...
StringBuilder sb = new StringBuilder()
StringWriter sw = new StringWriter (sb);
m.WriteTo(sw);
sw.Close();
string s = sb.ToString();
or
string s = System.Text.Encoding.Default.GetString(m.ToArray());
#2
what's in the stream?
MemoryStream ms = new MemoryStream();
byte[] bs = ms.ToArray();
String s = System.Text.Encoding.UTF8.GetString(bs);
byte[] bs2 = System.Text.Encoding.UTF8.GetBytes(s);
MemoryStream ms2 = new MemoryStream(bs2);
MemoryStream ms = new MemoryStream();
byte[] bs = ms.ToArray();
String s = System.Text.Encoding.UTF8.GetString(bs);
byte[] bs2 = System.Text.Encoding.UTF8.GetBytes(s);
MemoryStream ms2 = new MemoryStream(bs2);
#3
byte []a=MemoryStream .toarray()
string s=System.text.encoding.default.getstring(a);
string s=System.text.encoding.default.getstring(a);
#4
to 楼上的几位:
我用
Encoding
UnicodeEncoding
都试过了,有些情况是可以的,但在有些情况下会丢失信息
我用
Encoding
UnicodeEncoding
都试过了,有些情况是可以的,但在有些情况下会丢失信息
#5
string s="陈村sdklfjalskdfHélène Rollès";
byte[] bs=System.Text.Encoding.Default.GetBytes(s);
MemoryStream ms=new MemoryStream(bs);
byte[] bs2=ms.ToArray();
string s1=System.Text.Encoding.Default.GetString(bs2);
Response.Write(s1);
这样转换不会出错。
不知道你里面要转换什么东东。
byte[] bs=System.Text.Encoding.Default.GetBytes(s);
MemoryStream ms=new MemoryStream(bs);
byte[] bs2=ms.ToArray();
string s1=System.Text.Encoding.Default.GetString(bs2);
Response.Write(s1);
这样转换不会出错。
不知道你里面要转换什么东东。
#6
帮你顶一下
#7
我要转化的memorystream是序列化dataset而得来的,里面包含的是dataset的全部信息
转换几十条记录的表没有问题,但转换几千条记录的大表时则丢失了一些信息而导致转换失败
转换几十条记录的表没有问题,但转换几千条记录的大表时则丢失了一些信息而导致转换失败
#8
up
#9
不会吧,我的DataSet几十W条记录的都好正常啊。
#10
使用Base64编码解决该问题,方便,快捷
代码如下:
public static string GetStreamString(System.IO.MemoryStream ms)
{
byte[] cache = new System.IO.BinaryReader(ms).ReadBytes(ms.Length);
return Convert.ToBase64String(cache,0,cache.Length);
}
public static string GetStringStream(string mss)
{
return Convert.FromBase64String(mss);
}
代码如下:
public static string GetStreamString(System.IO.MemoryStream ms)
{
byte[] cache = new System.IO.BinaryReader(ms).ReadBytes(ms.Length);
return Convert.ToBase64String(cache,0,cache.Length);
}
public static string GetStringStream(string mss)
{
return Convert.FromBase64String(mss);
}
#11
Stream stream=new MemoryStream();
stream.Position = 0;
StreamReader sr = new StreamReader(stream);
string str = sr.ReadToEnd();
stream.Position = 0;
StreamReader sr = new StreamReader(stream);
string str = sr.ReadToEnd();
#12
string cryptString = "";
Stream outStream = new MemoryStream();
StreamWriter sw = new StreamWriter(outStream);
sw.Write(cryptString);
Stream outStream = new MemoryStream();
StreamWriter sw = new StreamWriter(outStream);
sw.Write(cryptString);
#13
我试了所有的方法,只有zealic() 的方法可以,其他的都不行。我是把位图图像存在MemoryStream里面的。用其他方法转化成String的时候总是只有几个字符
#14
mark
#1
MemoryStream m;
///...
StringBuilder sb = new StringBuilder()
StringWriter sw = new StringWriter (sb);
m.WriteTo(sw);
sw.Close();
string s = sb.ToString();
or
string s = System.Text.Encoding.Default.GetString(m.ToArray());
///...
StringBuilder sb = new StringBuilder()
StringWriter sw = new StringWriter (sb);
m.WriteTo(sw);
sw.Close();
string s = sb.ToString();
or
string s = System.Text.Encoding.Default.GetString(m.ToArray());
#2
what's in the stream?
MemoryStream ms = new MemoryStream();
byte[] bs = ms.ToArray();
String s = System.Text.Encoding.UTF8.GetString(bs);
byte[] bs2 = System.Text.Encoding.UTF8.GetBytes(s);
MemoryStream ms2 = new MemoryStream(bs2);
MemoryStream ms = new MemoryStream();
byte[] bs = ms.ToArray();
String s = System.Text.Encoding.UTF8.GetString(bs);
byte[] bs2 = System.Text.Encoding.UTF8.GetBytes(s);
MemoryStream ms2 = new MemoryStream(bs2);
#3
byte []a=MemoryStream .toarray()
string s=System.text.encoding.default.getstring(a);
string s=System.text.encoding.default.getstring(a);
#4
to 楼上的几位:
我用
Encoding
UnicodeEncoding
都试过了,有些情况是可以的,但在有些情况下会丢失信息
我用
Encoding
UnicodeEncoding
都试过了,有些情况是可以的,但在有些情况下会丢失信息
#5
string s="陈村sdklfjalskdfHélène Rollès";
byte[] bs=System.Text.Encoding.Default.GetBytes(s);
MemoryStream ms=new MemoryStream(bs);
byte[] bs2=ms.ToArray();
string s1=System.Text.Encoding.Default.GetString(bs2);
Response.Write(s1);
这样转换不会出错。
不知道你里面要转换什么东东。
byte[] bs=System.Text.Encoding.Default.GetBytes(s);
MemoryStream ms=new MemoryStream(bs);
byte[] bs2=ms.ToArray();
string s1=System.Text.Encoding.Default.GetString(bs2);
Response.Write(s1);
这样转换不会出错。
不知道你里面要转换什么东东。
#6
帮你顶一下
#7
我要转化的memorystream是序列化dataset而得来的,里面包含的是dataset的全部信息
转换几十条记录的表没有问题,但转换几千条记录的大表时则丢失了一些信息而导致转换失败
转换几十条记录的表没有问题,但转换几千条记录的大表时则丢失了一些信息而导致转换失败
#8
up
#9
不会吧,我的DataSet几十W条记录的都好正常啊。
#10
使用Base64编码解决该问题,方便,快捷
代码如下:
public static string GetStreamString(System.IO.MemoryStream ms)
{
byte[] cache = new System.IO.BinaryReader(ms).ReadBytes(ms.Length);
return Convert.ToBase64String(cache,0,cache.Length);
}
public static string GetStringStream(string mss)
{
return Convert.FromBase64String(mss);
}
代码如下:
public static string GetStreamString(System.IO.MemoryStream ms)
{
byte[] cache = new System.IO.BinaryReader(ms).ReadBytes(ms.Length);
return Convert.ToBase64String(cache,0,cache.Length);
}
public static string GetStringStream(string mss)
{
return Convert.FromBase64String(mss);
}
#11
Stream stream=new MemoryStream();
stream.Position = 0;
StreamReader sr = new StreamReader(stream);
string str = sr.ReadToEnd();
stream.Position = 0;
StreamReader sr = new StreamReader(stream);
string str = sr.ReadToEnd();
#12
string cryptString = "";
Stream outStream = new MemoryStream();
StreamWriter sw = new StreamWriter(outStream);
sw.Write(cryptString);
Stream outStream = new MemoryStream();
StreamWriter sw = new StreamWriter(outStream);
sw.Write(cryptString);
#13
我试了所有的方法,只有zealic() 的方法可以,其他的都不行。我是把位图图像存在MemoryStream里面的。用其他方法转化成String的时候总是只有几个字符
#14
mark