字符串长度的问题。。。 不是8String 类的新实例初始化为由指向 8 位有符号整数数组的指针指示的值。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是8我还要问吗???在C#中"test中文".Length明明是6,我的问题就是如何取得为8?这个可能是因为C#中Unicode编码的原因。 string s = "test中文";byte[] test = System.Text.Encoding.Default.GetBytes(s);int len2 = test.Length; 应该是6,但是如果把他存在byte〔〕 的buffer中将占用8个byte,因为一个unicode字符是两个byte int intLen = 0; //字符串长度foreach(byte byteStr in System.Text.Encoding.Unicode.GetBytes("test中文")){if (!byteStr.ToString().Equals("0")){intLen += 1;}}MessageBox.Show(intLen.ToString()); String.Length返回的是字符串的逻辑长度,也就是字符串内部的字符数组的长度(除去结尾的空字符),所以它返回的是6。这里你需要的是字符串编码后的字节数,使用的编码不一样,返回的字节数也不一样,比如使用Unicode返回的是12,UTF7是10。 程序的本地化如何实现消息的本地化 C# DropDownList 问题 GridView出错!(初学者,希望大家不要笑话) 数据库中的数据在大屏上滚动显示 突然发现CSDN中的.Net并不太旺,整个.Net还不如VB版块 Socket 编程经验谈 解决winform卡死的问题 关于控件的controls位置排序判断 感谢高手的回答, 请领分 一分钟即刻送分!DataGrid中如何指定关联表数据源!!! winform形式,要把连接数据库的sql字符串放到xml文件里,然后传递过来怎么做? 知道www.yahoo.com,如何知道对于的IP地址?
byte[] test = System.Text.Encoding.Default.GetBytes(s);
int len2 = test.Length;
foreach(byte byteStr in System.Text.Encoding.Unicode.GetBytes("test中文"))
{
if (!byteStr.ToString().Equals("0"))
{
intLen += 1;
}}
MessageBox.Show(intLen.ToString());
这里你需要的是字符串编码后的字节数,使用的编码不一样,返回的字节数也不一样,比如使用Unicode返回的是12,UTF7是10。