C#字节数组转换string长度问题
byte[]a=newbyte[1024];MessageBox.Show(Encoding.Default.GetString(a).Length.ToString()...
byte[] a = new byte[1024]; MessageBox.Show(Encoding.Default.GetString(a).Length.ToString()); 显示1024,但这个字节数组是为赋值的,怎么才可以得到转换为string类型后的真实长度?
展开
2个回答
展开全部
字符在c#中很容易转化成字节数组的!
但字符串可不同的编码下有不同的编码方式,而字节就是一个字节,在任何编码下都是相同的,所以在转化之前我们必须先了解string是在什么样的编下。
如果是在utf-8编下的情况下,我们可以使用
byte[]
buffer
=
encoding.utf8.getbytes("要转化的字符串");
如果事先我们知道这种编的名字,那么这名方式也是不错的!
byte[]
buffer
=
encoding.getencoding("utf8").getbytes("要转化的字符串");
但字符串可不同的编码下有不同的编码方式,而字节就是一个字节,在任何编码下都是相同的,所以在转化之前我们必须先了解string是在什么样的编下。
如果是在utf-8编下的情况下,我们可以使用
byte[]
buffer
=
encoding.utf8.getbytes("要转化的字符串");
如果事先我们知道这种编的名字,那么这名方式也是不错的!
byte[]
buffer
=
encoding.getencoding("utf8").getbytes("要转化的字符串");
展开全部
public static string StringToBaseLengthString(ref byte[] array)
{
string str = Encoding.Default.GetString(array);
string result = "";
for (int i = 0; i < str.Length; i++)
{
if (str[i] == '\0')
break;
result += str[i];
}
return result;
}
{
string str = Encoding.Default.GetString(array);
string result = "";
for (int i = 0; i < str.Length; i++)
{
if (str[i] == '\0')
break;
result += str[i];
}
return result;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询