C#验证输入数据的字节数包括中文和英文
2011-09-28 12:49
232 查看
public int GetBytesOfString(string str)
{//获取字符串的字节数
byte[] bytes = Encoding.Unicode.GetBytes(str);
int n = 0;
for (int i = 0; i < bytes.GetLength(0); i++)
{
// 偶数位置,如0、2、4等,为UCS2编码中两个字节的第一个字节
if (i % 2 == 0)
{
n++; // 在UCS2第一个字节时n加1
}
else
{
// 当UCS2编码的第二个字节大于0时,该UCS2字符为汉字,一个汉字算两个字节
if (bytes[i] > 0)
{
n++;
}
}
}
return n;
}
private string GetSubstringByLength(string str, ref int len)
{//截取字符串指定字节数的内容,并返回实际截取的字节数
byte[] bytes = Encoding.Unicode.GetBytes(str);
int n = 0; // 表示当前的字节数
int i = 0; // 要截取的字节数
for (; i < bytes.GetLength(0) && n < len; i++)
{
if (i % 2 == 0)// 偶数位置,如0、2、4等,为UCS2编码中两个字节的第一个字节
{
n++; // 在UCS2第一个字节时n加1
}
else
{
if (bytes[i] > 0)// 当UCS2编码的第二个字节大于0时,该UCS2字符为汉字,一个汉字算两个字节
{
n++;
}
}
}
// 如果i为奇数时,处理成偶数
if (i % 2 == 1)
{
if (bytes[i] > 0) // 该UCS2字符是汉字时,去掉这个截一半的汉字
i = i - 1;
else
i = i + 1;// 该UCS2字符是字母或数字,则保留该字符
}
len = i;
return Encoding.Unicode.GetString(bytes, 0, i);
}
{//获取字符串的字节数
byte[] bytes = Encoding.Unicode.GetBytes(str);
int n = 0;
for (int i = 0; i < bytes.GetLength(0); i++)
{
// 偶数位置,如0、2、4等,为UCS2编码中两个字节的第一个字节
if (i % 2 == 0)
{
n++; // 在UCS2第一个字节时n加1
}
else
{
// 当UCS2编码的第二个字节大于0时,该UCS2字符为汉字,一个汉字算两个字节
if (bytes[i] > 0)
{
n++;
}
}
}
return n;
}
private string GetSubstringByLength(string str, ref int len)
{//截取字符串指定字节数的内容,并返回实际截取的字节数
byte[] bytes = Encoding.Unicode.GetBytes(str);
int n = 0; // 表示当前的字节数
int i = 0; // 要截取的字节数
for (; i < bytes.GetLength(0) && n < len; i++)
{
if (i % 2 == 0)// 偶数位置,如0、2、4等,为UCS2编码中两个字节的第一个字节
{
n++; // 在UCS2第一个字节时n加1
}
else
{
if (bytes[i] > 0)// 当UCS2编码的第二个字节大于0时,该UCS2字符为汉字,一个汉字算两个字节
{
n++;
}
}
}
// 如果i为奇数时,处理成偶数
if (i % 2 == 1)
{
if (bytes[i] > 0) // 该UCS2字符是汉字时,去掉这个截一半的汉字
i = i - 1;
else
i = i + 1;// 该UCS2字符是字母或数字,则保留该字符
}
len = i;
return Encoding.Unicode.GetString(bytes, 0, i);
}
相关文章推荐
- C#验证输入数据的字节数包括中文和英文
- C#验证输入数据的字节数包括中文和英文
- jquery验证,只能输入英文或者中文
- js验证,只能输入英文和数据
- C# 字符、字符串过滤,只能输入数字、中文、英文、大写、小写
- jQuery验证,匹配输入非中文的正则表达式,输入内容可以是包括空格等特殊字符的任何字符。
- C#验证字符串是否是数字,是否包括中文,是否是邮箱格式,是否是电话格式
- c# 正则验证 只能中文,英文,数字下划线,首个字符不能数字,6-20个字节
- 正则表达式验证输入是否全中文 C#
- c# 中验证输入字符串是否是数字(包括小数)
- C# 字符、字符串过滤,只能输入数字、中文、英文、大写、小写(转)
- C#判断字符是英文还是中文
- 有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,编写如下函数: (1) 输入10个学生 的基本信息(input); (2) 求出每个学生的平均分(average); (3) 求出平均分
- C# 读取含中文字符的数据,失败原因,和解决办法
- C# mysql 插入数据,中文乱码的解决方法
- JS 控制文本框只能输入中文、英文、数字与指定特殊符号
- debian英文系统下使用scim输入中文的一个必杀技
- [C#] TextBox限制输入长度(中文字算2码)
- C# 判断输入的字符串是否只包含数字和英文字母
- 英文Ubuntu系统中skype输入中文问题