如何获取字符串的长度
发布网友
发布时间:2022-05-12 15:07
我来回答
共4个回答
热心网友
时间:2022-04-25 20:27
Encoding.GetBytes ();
Encoding.GetString ();
通过这两个方法将汉字字符编码为字节数组,同样知道了汉字GB2312的字节数组编码也就可以将字节数组解码为汉字字符。
Encoding gb=System.Text.Encoding.GetEncoding("gb2312");
object[] bytes=gb.Encoding.GetBytes ("好");
发现得到了一个长度为2的字节数组bytes,使用
string lowCode = System.Convert.ToString(bytes[0], 16); //取出元素1编码内容(两位16进制)
string hightCode = System.Convert.ToString(bytes[1], 16);//取出元素2编码内容(两位16进制)
这样取出的数组为{ba,c3},刚好是“好”字的十六进制区位码
所以每个汉字字符都能变成一个长度为2的十六进制字节数组。
热心网友
时间:2022-04-25 21:45
一个汉字占二个字节
这个说法就不对,UTF-8编码可是3个字节哦
热心网友
时间:2022-04-25 23:20
只想说一句,英文如果采用unicode编码的话也是占用两个字节的。
热心网友
时间:2022-04-26 01:28
/// <summary>
/// 检测含有中文字符串的实际长度
/// </summary>
/// <param name="str">字符串</param>
private int len(string str)
{
System.Text.ASCIIEncoding n = new System.Text.ASCIIEncoding();
byte[] b = n.GetBytes(str);
int l = 0; // l 为字符串之实际长度
for (int i = 0; i <= b.Length - 1; i++)
{
if (b[i] == 63) //判断是否为汉字或全脚符号
{
l++;
}
l++;
} return l;
}