例如:“我是中国人”怎么把它转成0101……的二进制序列
这么写就行了,不知道你是干什么用如果是保存的话最好还是保存成16进制
private void button1_Click(object sender, EventArgs e)
{
string str = "我是中国人";
byte[] byteArr = Encoding.Unicode.GetBytes(str);
string binStr = "";
string tempStr = "";
int length = 0;
//转成二进制
for (int i = 0; i < byteArr.Length; i++)
{
tempStr = Convert.ToString(byteArr[i], 2);
length = tempStr.Length;
for (int j = 0; j < 8 - length; j++)
{
tempStr = "0" + tempStr;
}
binStr += tempStr;
}
MessageBox.Show(binStr);
//转成字符串
byte[] newByteArr = new byte[binStr.Length / 8];
for (int i = 0; i < binStr.Length / 8; i++)
{
newByteArr[i] = (byte)Convert.ToInt32(binStr.Substring(i * 8, 8), 2);
}
MessageBox.Show(Encoding.Unicode.GetString(newByteArr));
}
private void button1_Click(object sender, EventArgs e)
{
string str = "我是中国人";
byte[] byteArr = Encoding.Unicode.GetBytes(str);
string binStr = "";
string tempStr = "";
int length = 0;
//转成二进制
for (int i = 0; i < byteArr.Length; i++)
{
tempStr = Convert.ToString(byteArr[i], 2);
length = tempStr.Length;
for (int j = 0; j < 8 - length; j++)
{
tempStr = "0" + tempStr;
}
binStr += tempStr;
}
MessageBox.Show(binStr);
//转成字符串
byte[] newByteArr = new byte[binStr.Length / 8];
for (int i = 0; i < binStr.Length / 8; i++)
{
newByteArr[i] = (byte)Convert.ToInt32(binStr.Substring(i * 8, 8), 2);
}
MessageBox.Show(Encoding.Unicode.GetString(newByteArr));
}
温馨提示:答案为网友推荐,仅供参考
第1个回答 2009-07-31
string text = "中国,加油!";
//以UTF8编码方式,转化为字节数组。
byte[] binaryBytes = System.Text.Encoding.UTF8.GetBytes( text );
//以UTF8编码方式,把字节数组还原为字符串。
string newText = System.Text.Encoding.UTF8.GetString( binaryBytes );
//以UTF8编码方式,转化为字节数组。
byte[] binaryBytes = System.Text.Encoding.UTF8.GetBytes( text );
//以UTF8编码方式,把字节数组还原为字符串。
string newText = System.Text.Encoding.UTF8.GetString( binaryBytes );