全角和半角

 A 什么是全角和半角?

(1)全角---指一个字符占用两个标准字符位置。
 
汉字字符和规定了全角的英文字符及国标GB2312-80中的图形符号和特殊字符都是全角字符。一般的系统命令是不用全角字符的,只是在作文字处理时才会使用全角字符。 

(2)半角---指一字符占用一个标准的字符位置。 

通常的英文字母、数字键、符号键都是半角的,半角的显示内码都是一个字节。在系统内部,以上三种字符是作为基本代码处理的,所以用户输入命令和参数时一般都使用半角。 


B 全角与半角有什么区别?各在什么情况下使用? 

全角占两个字节,半角占一个字节。 

半角全角主要是针对标点符号来说的,全角标点占两个字节,半角占一个字节,而不管是半角还是全角,汉字都还是要占两个字节 

在编程序的源代码中只能使用半角标点(不包括字符串内部的数据) 
在不支持汉字等语言的计算机上只能使用半角标点(其实这种情况根本就不存在半角全角的概念) 
其他时候好像基本上没怎么区分全角和半角,你觉得那种写着好看就用哪种吧 

,.?'! ……这些是半角的 
,。?‘! ……这些是全角的 

对于大多数字体来说,全角看起来比半角大,当然这不是本质区别了 
全角是中文的标点.半角是英文的吧. 


C 全角和半角的区别

全角就是字母和数字等与汉字占等宽位置的字 
半角就是ASCII方式的字符,在没有汉字输入法起做用的时候输入的字母数字和字符都是半角的。 
示例如下:(键盘的输入是一样的,输入法的设置不同) 

[全角举例]AabB1234@#$%^&*;,。: 
[半角举例]AabB1234@$%^&*;,.: 

在汉字输入法出现的时候,输入的字母数字默认为半角,但是标点则是默认为全角(如下图)可以通过鼠标点击输入法工具条上的相应按钮来改变,输入法名字左边的按钮是改变中文和英文输入的,右边的圆和半圆是改变字母和数字的全角半角的,再右边的“.,”或者"。,"是用来改变标点符号的中英文设置(中文标点即是全角,英文标点即是半角),最右边的键盘图标是显示软键盘用的,可以输入一些特殊字符或者其它语言里面的字母。 

下面的图中,第一个图为中文输入方式,半角字母/数字,全角标点符号;第二个正好相反。 


D 关于“全角”和“半角”: 

全角:是指中GB2312-80(《信息交换用汉字编码字符集·基本集》)中的各种符号,如A、B、C、1、2、3等,应将这些符号理解为汉字。 

半角:是指英文件ASCII码中的各种符号,如A、B、C、1、2、3、等。 

在VFP命令及程序中,命令字不能用全角,如清屏命令应该是CLEAR,不能是CLEAR。所以应该在关闭汉字输入状态下,或即使在汉字输入状态下,也应在半角状态, 
输入法状态条应是:中的状态,不应是状态,可用Shift+Space切换。 
关于中/英文标点符号: 

中文标点符号:如:,“”《》()?。等,在VFP命令中不能用,如定义变量name为“曹开惠”的赋值语句命令是: 
英文标点符号:如:,"<>()?.等。 
name="曹开慧" 
不能输入: 
name=“曹开慧” 


E 新手充电:汉字的全角半角的分别 

汉字的特点使我们要碰上两个最基本且又非常重要的概念,那就是全角与半角。 
形象的说,在使用英文输入法时,电脑屏幕上,一个英文字符(如“a”)所占的位置,人们称其为“半角”,而一个汉字所占的位置则等于两个英文字符,故称其为“全角”。 

在我们日常使用的电脑系统里,初始输入法一般都默认为英文输入法,这时自然会处在半角状态下,无论是输入字母、符号还是数字,始终都只占一个英文字符的位置。若切换到中文输入法状态中,则会有全角半角两种选择,对中文字符来说,这两种选择对其没有影响,它始终都要占两个英文字符的位置,但对此状态下输入的符号、数字以及英文字母来说,就显得很重要,如以下所示: 

“QUAN” 
“QUAN” 

前者输入选择的是半角,后者为全角,两者呈现的结果差异很大,在选择全角后,即便是字母、符号、数字都无一例外地要被当成汉字进行处理,从视觉角度上看,它们因此也显得别扭了许多。 

很多人往往会忽视半角和全角间的切换,这样他们遇到一些怪事也不足为奇,比如我们上网时经常要输入密码或网址,若此时在全角状态下进行,只能因系统无法确认而导致失败;还有在发送电子邮件的时候,把电子邮件地址写成xxx@xxx.com,即全角“@”的形式,而非符合规定的半角“@”形式,结果也只能是无法成功发送邮件。要强调的是,在绝大多数场合里,都要求使用半角进行输入。 

看来,还不能忽视全角和半角的作用,在中文输入状态下,它们的情况会被显示在输入法提示栏里,比如在智能ABC的提示栏中有相应按钮供转换,其形状为“半月”的是半角,“圆月”的是全角,我们可以通过用鼠标点击或快捷键Shift+Space进行两者间的切换什么是全角和半角。

1,使用函数转换

/// <summary>
/// 转全角的函数(SBC case)
/// </summary>
/// <param name="input">任意字符串</param>
/// <returns>全角字符串</returns>
///<remarks>
///全角空格为12288,半角空格为32
///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248
///</remarks>       
public string ToSBC(string input)
{
    //半角转全角:
    char[] c = input.ToCharArray();
    for (int i = 0; i < c.Length; i++)
    {
        if (c[i] == 32)
        {
            c[i] = (char) 12288;
            continue;
        }
        if (c[i] < 127)
            c[i] = (char) (c[i] + 65248);
    }
    return new string(c);
}


/// <summary>
/// 转半角的函数(DBC case)
/// </summary>
/// <param name="input">任意字符串</param>
/// <returns>半角字符串</returns>
///<remarks>
///全角空格为12288,半角空格为32
///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248
///</remarks>
public string ToDBC(string input)
{
    char[] c = input.ToCharArray();
    for (int i = 0; i < c.Length; i++)
    {
        if (c[i] == 12288)
        {
            c[i] = (char) 32;
            continue;
        }
        if (c[i] > 65280 && c[i] < 65375)
            c[i] = (char) (c[i] - 65248);
    }
    return new string(c);
}

2.使用Microsoft.VisualBasic类库
在C#项目中添加引用Microsoft.VisualBasic.dll, 可以在C#程序中直接使用VB.NET中丰富的函数  1// 命令行编译 : csc /r:Microsoft.VisualBasic.dll Test.cs
复制  保存// 如果是用 Visual Studio .NET IDE, 请按以下方法为项目添加引用:
// 打开[解决方案资源管理器], 右击项目名称, 选择[添加引用],
// 从列表中选择 Microsoft Visual Basic .NET Runtime 组件.

using Microsoft.VisualBasic;

class Test
{
    static void Main()
    {
        string s = "博客园-空军 [skyIV.cnBlogs.com]";
        System.Console.WriteLine(s);

        s = Strings.StrConv(s, VbStrConv.Wide, 0); // 半角转全角
        s = Strings.StrConv(s, VbStrConv.TraditionalChinese, 0); // 简体转繁体
        System.Console.WriteLine(s);

        s = Strings.StrConv(s, VbStrConv.ProperCase, 0); // 首字母大写
        s = Strings.StrConv(s, VbStrConv.Narrow, 0); // 全角转半角
        s = Strings.StrConv(s, VbStrConv.SimplifiedChinese, 0); // 繁体转简体
        System.Console.WriteLine(s);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值