zoukankan      html  css  js  c++  java
  • Asp.net 字符(一)

    1、字母大小写处理

        private string GetChangedStr(string oldStr, strType type) 
        {
            string newStr = "";
            //使用 TextInfo 类时,必须指定区域性信息。多数情况下,可默认当前正在使用的区域性。
            CultureInfo culInfo = Thread.CurrentThread.CurrentCulture;
            TextInfo tInfo = culInfo.TextInfo;
            switch (type)
            {
                case strType.Upper:  //统一转换成大写
                    newStr = tInfo.ToUpper(oldStr);
                    break;
                case strType.Lower:  //统一转换成小写
                    newStr = tInfo.ToLower(oldStr);
                    break;
                case strType.FirToUpper:  //首字符大写
                    newStr = tInfo.ToTitleCase(oldStr);
                    break;
                case strType.UTL_LTU:  //大写转小写,小写转大写。
                    char[] oldArr = oldStr.ToCharArray();
                    for (int i = 0; i < oldArr.Length; i++)
                    {
                        if (char.IsUpper(oldStr, i))
                            newStr += oldArr[i].ToString().ToLower();
                        else
                            newStr += oldArr[i].ToString().ToUpper();
                    }
                    break;
                default:
                    break;
            }
            return newStr;
        }
    
        enum strType
        {
            Upper,
            Lower,
            FirToUpper,
            UTL_LTU
        }

    2、字母与ASCII的互换

      在Web开发时,ASCII的作用!(American Standard Code for Information Interchange,美国信息交换标准代码)

        举个例子:' 单引号在sql语句中是个杀手,但是如果把(')它转换成 "&#" + ASCII码 +";" 去存储,就可以有效的防治sql注入了!

        private string strToASCII(string oldStr)
        {
            string newStr = "参数不能为空!!!";
            if (!string.IsNullOrEmpty(oldStr))
            {
                int num;
                if (int.TryParse(oldStr, out num))
                {
                    newStr = ((char)num).ToString();
                }
                else
                {
                    if (Encoding.GetEncoding("unicode").GetBytes(new char[] { oldStr[0] })[1] == 0) //判断是否为字母
                    {
                        newStr = Encoding.GetEncoding("unicode").GetBytes(oldStr)[0].ToString();
                    }
                }
            }
            return newStr;
        }

    3、汉字与区位码

         为了使每一个汉字有一个全国统一的代码,1980年,我国颁布了第一个汉字编码的国家标准: GB2312-80《信息交换用汉字编码字符集》基本集,这个字符集是我国中文信息处理技术的发展基础,也是目前国内所有汉字系统的统一标准。由于国标码是四位十六进制,为了便于交流,大家常用的是四位十进制的区位码。

      所有的国标汉字与符号组成一个94×94的矩阵。在此方阵中,每一行称为一个“区”,每一列称为一个“位”,因此,这个方阵实际上组成了一个有94个区(区号分别为0 1到94)、每个区内有94个位(位号分别为01到94)的汉字字符集。

      一个汉字所在的区号和位号简单地组合在一起就构成了该汉字的“区位码”。

      在汉字的区位码中,高两位为区号,低两位为位号。在区位码中,

          01-09区为682个特殊字符,

          16~87区为汉字区,包含6763个汉字。其中16-55区为一级汉字(3755个最常用的汉字,按拼音字母的次序排列),

          56-87区为二级汉字(3008个汉字,按部首次序排列);

          88-94 区: 空白, 留待扩展。

        private string strToLocCode(string oldStr) 
        {
            try
            {
                string newStr = "";
                byte[] btArray = new byte[2];  //定义字节数组用于存储汉字
                btArray = Encoding.Default.GetBytes(oldStr); //赋值
                int first = (short)(btArray[0] - '');
                int second = (short)(btArray[1] - '');
                newStr = (first - 160).ToString() + (second - 160).ToString();  //计算区位码
                return newStr;
            }
            catch (Exception e)
            {
                return e.Message+"请输入正确的汉字";   
            }
        }

    交流群:225443677  

  • 相关阅读:
    [转]暴风电视开机卡死、闪屏怎么办
    暴风电视快速查询机器型号及平台
    暴风电视风行系统FUNOS插入U盘、移动硬盘不能写入文件。
    yum版本号前有:冒号 指的是依赖版本号,默认0不显示
    yum多个源repo安装指定版本docker
    [转]YUM的工作机制与配置
    yum!base仓库里的repo id(源标识)前有叹号
    Docker新旧版本号下载
    yum没有可用软件包 docker。错误:无须任何处理CentOS-Media.repo仓库
    【笔记整理】之 servlet
  • 原文地址:https://www.cnblogs.com/LittleBai/p/6083393.html
Copyright © 2011-2022 走看看