zoukankan      html  css  js  c++  java
  • 全角转半角与半角转全角

    1.全角:指一个字符占用两个标准字符位置。汉字字符和规定了全角的英文字符及国标GB2312-80中的图形符号和特殊字符都是全角字符。一般的系统命令是不用全角字符的,只是在作文字处理时才会使用全角字符。
    2.半角:指一字符占用一个标准的字符位置。通常的英文字母、数字键、符号键都是半角的,半角的显示内码都是一个字节。在系统内部,以上三种字符是作为基本代码处理的,所以用户输入命令和参数时一般都使用半角。
    3.全角与半角在计算机中的表示:据我所知,全角的第一个字节是163(我用-93),然后第二个字节与半角相差128。全角空格和半角空格也要考虑进去。
    4.C/C++版本:
     
    string ToDBS(string str) { 
        string result = ""; 
        unsigned char tmp; unsigned char tmp1; 
        for (unsigned int i = 0; i < str.length(); i++) { 
            tmp = str[i]; 
            tmp1 = str[i + 1]; 
            cout << "uchar:" << (int) tmp << endl; 
            if (tmp == 163) {///第一个字节是163,标志着是全角字符 
                result += (unsigned char) str[i + 1] - 128; 
                i++; 
                continue; 
            } else if (tmp > 163) {//汉字 
                result += str.substr(i, 2); 
                i++; 
                continue; 
            } else if (tmp == 161 && tmp1 == 161) {///处理全角空格 
                result += ""; 
                i++; 
            } else { 
                result += str.substr(i, 1); } } return result; 
    } 
     
    5.C#版本:        
         /// <summary> 
            /// 转全角的函数(SBC case) 
            /// </summary> 
            /// <param name="input">任意字符串</param> 
            /// <returns>全角字符串</returns> 
            ///<remarks> 
            ///全角空格为12288,半角空格为32 
            ///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248 
            ///</remarks>         
            public static 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 static 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); 
            } 
     
    
    
  • 相关阅读:
    杭电 2602 Bone Collector
    Log4cpp介绍及使用
    DirectSound的应用
    unity3d 中加入�视频
    Android手机分辨率基础知识(DPI,DIP计算)
    MVC中使用AuthorizeAttribute做身份验证操作
    Java正則表達式入门
    使用Java高速实现进度条
    微软历史最高市值是多少?
    android 怎样内置/预置/预编译文件(运行程序,应用程序,apk, jar, lib 等随意文件)到系统中
  • 原文地址:https://www.cnblogs.com/ant520/p/1938052.html
Copyright © 2011-2022 走看看