C#全角半角问题

来源:百度知道 编辑:UC知道 时间:2024/05/31 09:00:19
class Program
{
static void Main(string[] args)
{
Console.WriteLine("判断是不是半角:");
a = Console.ReadLine();
Pdbj.bj(a);
}
class Pdbj
{
public static void bj(string a)
{
Console.WriteLine(System.Text.UnicodeEncoding.Unicode.GetByteCount(a));
}
}
用上述方法 得到的都是2 有人说2是全角 可是我是用半角输入的,结果还是2,是次方法不能判断还是什么地方出现了问题,希望有人能给个答案.

class Pdbj
{
public static void bj(string a)
{
Console.WriteLine(System.Text.Encoding.Default.GetByteCount(a));
}
}

在C#,所有使用的字符集都属于Unicode,也就是不管你怎么输入,存的时候都两个字节。

这个是我系统中采用的方法:
/// <summary>
/// 判断字符是否英文半角字符或标点
/// </summary>
/// <remarks>
/// 32 空格
/// 33-47 标点
/// 48-57 0~9
/// 58-64 标点
/// 65-90 A~Z
/// 91-96 标点
/// 97-122 a~z
/// 123-126 标点
/// </remarks>
public static bool IsBjChar(char c)
{
int i = (int)c;
return i >= 32 && i <= 126;
}

/// <summary>
/// 判断字符是否全角字符或标点
/// </summary>
/// <remarks>
/// <para>全角字符 - 65248 = 半角字符</para>
/// &l