c# 中文字符(全角、半角)通用处理

简介:

声明:本文仅提供一种编程思路,所提供代码仅供参考,如需使用,请自行完善。

我们在做程序的的时候经常要处理用户输入,作为我们的主要语言中文,经常会出现全角、半角的问题,这会在查询时给我们带来很多麻烦。
本文采用扩展方法解决全半角切换的问题,效果图

代码如下:

复制代码

        public static void Example(string userInput)
        
{
            
string sbc = userInput.ToSBC(); //转全角
            
//具体操作,如存入数据库 
            string dbc = userInput.ToDBC();//转半角
            
//具体操作,如存入数据库 
        }

        
/// <summary>
        
/// 转全角(SBC case)
        
/// </summary>
        
/// <param name="input">任意字符串</param>
        
/// <returns>全角字符串</returns>

        public static string ToSBC(this 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>

        public static string ToDBC(this 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);
        }
复制代码


中文处理中另一个常用的是获取拼音首字母,如:中华人民共和国,首字母为ZHRMGHG。很多库存管理程序中都将这个作为助记码,用作快速查询。
这里只给出扩展定义和示例,具体实现网上很多,但大部分都不能解决多音字的问题。

复制代码

        public static void Example2(string productName)
        
{
            
string shortName = productName.GetChineseSpell();
        }


        
/// <summary>
        
/// 获取汉字拼音首字母
        
/// </summary>
        
/// <param name="s">输入</param>
        
/// <returns>汉字拼音首字母,其它字符原样返回</returns>

        public static string GetChineseSpell(this string s)
        
{
            
return null;//请自行完成
        }
复制代码


还有中文简体繁体互转,也可以扩展进来。

分类:  ASP.NET
本文转自左正博客园博客,原文链接:http://www.cnblogs.com/soundcode/p/3607801.html ,如需转载请自行联系原作者
相关文章
|
C# 索引
C#判断中文字符(字符串)
protected bool IsChineseLetter(string input,int index) { int code = 0; int chfrom = Convert.
1088 0
|
C# 索引
C# 判断中文字符(字符串)-整理
  http://www.cnblogs.com/xiexiaokui/archive/2007/11/07/952655.html 方法一http://blog.csdn.net/qiujiahao/archive/2007/08/09/1733169.aspx在unicode 字符串中,中文的范围是在4E00..9FFF:CJK Unified Ideographs。
1213 0
|
C# 数据安全/隐私保护 移动开发
C#中cookie读写加密中文字符
代码 //加密  CookiesResponse.Cookies["askCRM"]["USERID"] = Tools.Encrypt(strUserName.Trim(), Tools.myKey);//解密string strUid = Request.
951 0
|
C#
C#输入法全半角转换
/**////         /// 转全角的函数(SBC case)        ///         /// 任意字符串        /// 全角字符串        ///        ///全角空格为12288,半角空格为32 ///其他字符半角(33-126)与全角(...
1031 0
|
18天前
|
开发框架 前端开发 .NET
C#编程与Web开发
【4月更文挑战第21天】本文探讨了C#在Web开发中的应用,包括使用ASP.NET框架、MVC模式、Web API和Entity Framework。C#作为.NET框架的主要语言,结合这些工具,能创建动态、高效的Web应用。实际案例涉及企业级应用、电子商务和社交媒体平台。尽管面临竞争和挑战,但C#在Web开发领域的前景将持续拓展。
|
18天前
|
SQL 开发框架 安全
C#编程与多线程处理
【4月更文挑战第21天】探索C#多线程处理,提升程序性能与响应性。了解C#中的Thread、Task类及Async/Await关键字,掌握线程同步与安全,实践并发计算、网络服务及UI优化。跟随未来发展趋势,利用C#打造高效应用。
|
18天前
|
存储 安全 网络安全
C#编程的安全性与加密技术
【4月更文挑战第21天】C#在.NET框架支持下,以其面向对象和高级特性成为安全软件开发的利器。本文探讨C#在安全加密领域的应用,包括使用System.Security.Cryptography库实现加密算法,利用SSL/TLS保障网络传输安全,进行身份验证,并强调编写安全代码的重要性。实际案例涵盖在线支付、企业应用和文件加密,展示了C#在应对安全挑战的同时,不断拓展其在该领域的潜力和未来前景。