方法一:
//字符串转byte
string StringMessage = "How Are you?"; Console.WriteLine("{0}", StringMessage); System.Text.ASCIIEncoding ASCII = new System.Text.ASCIIEncoding(); Byte[] BytesMessage = ASCII.GetBytes(StringMessage);
//byte转字符串
Byte[] BytesMessage;System.Text.ASCIIEncoding ASCII = new System.Text.ASCIIEncoding(); String StringMessage = ASCII.GetString( BytesMessage );
方法二:
//字符串转UTF-8 byte
string StringMessage = "Hello World How Are you? Pi /u03C0 Yen /uFFE5"; System.Text.UTF8Encoding UTF8 = new System.Text.UTF8Encoding(); Byte[] BytesMessage = UTF8.GetBytes(StringMessage);//UTF-8 byte 转字符串Byte[] BytesMessage;System.Text.UTF8Encoding UTF8 = new System.Text.UTF8Encoding(); String StringMessage = UTF8.GetString( BytesMessage );
//直接使用BinaryFormatter 和 MemoryStream
BinaryFormatter bf = new BinaryFormatter();
byte[] bytes;
MemoryStream ms = new MemoryStream();
string orig = "喂 Hello 谢谢 Thank You";
bf.Serialize(ms, orig);
ms.Seek(0, 0);
bytes = ms.ToArray();
MessageBox.Show("Original bytes Length: " + bytes.Length.ToString());
MessageBox.Show("Original string Length: " + orig.Length.ToString());
for (int i = 0; i < bytes.Length; ++i) bytes[i] ^= 168; // pseudo encrypt
for (int i = 0; i < bytes.Length; ++i) bytes[i] ^= 168; // pseudo decrypt
BinaryFormatter bfx = new BinaryFormatter();
MemoryStream msx = new MemoryStream();
msx.Write(bytes, 0, bytes.Length);
msx.Seek(0, 0);
string sx = (string)bfx.Deserialize(msx);
MessageBox.Show("Still intact :" + sx);
MessageBox.Show("Deserialize string Length(still intact): "
+ sx.Length.ToString());
BinaryFormatter bfy = new BinaryFormatter();
MemoryStream msy = new MemoryStream();
bfy.Serialize(msy, sx);
msy.Seek(0, 0);
byte[] bytesy = msy.ToArray();
MessageBox.Show("Deserialize bytes Length(still intact): "
+ bytesy.Length.ToString());