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;//请自行完成
}
还有中文简体繁体互转,也可以扩展进来。
c# 中文字符(全角、半角)通用处理的更多相关文章
- java中全角半角字符的相互转换的代码
如下内容是关于java中全角半角字符的相互转换的内容.package com.whatycms.common.util; import org.apache.commons.lang.StringUt ...
- Java如何判断字符串中包含有全角,半角符号
首先介绍下全角跟半角之间的区别: 在计算机屏幕上,一个汉字要占两个英文字符的位置,人们把一个英文字符所占的位置称为"半角",相对地把一个汉字所占的位置称为"全角" ...
- 我的Android进阶之旅------>Java全角半角的转换方法
一中文全角和半角输入的区别 1全角指一个字符占用两个标准字符位置 2半角指一字符占用一个标准的字符位置 3全角与半角各在什么情况下使用 4全角和半角的区别 5关于全角和半角 6全角与半角比较 二转半角 ...
- python实现全角半角的相互转换
缘起 在自然语言处理过程中,全角.半角的的不一致会导致信息抽取不一致,因此需要统一. 转换说明 全角半角转换说明 有规律(不含空格): 全角字符unicode编码从65281~65374 (十六进制 ...
- SQL转换全角/半角函数
/****** SQL转换全角/半角函数 开始******/ CREATE FUNCTION ConvertWordAngle ( ), --要转换的字符串 @flag bit --转换标志,0转换成 ...
- web页面全角&半角
根据Unicode编码,全角空格为12288,半角空格为32 : 其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248 全角-->半角函数 //半角转换 ...
- C#全角半角转换函数
Code#region 全角半角转换 /// <summary> /// 转全角的函数(SBC case) /// </summary> /// <param name= ...
- php字符串处理之全角半角转换
半角全角的处理是字符串处理的常见问题,本文尝试为大家提供一个思路. 一.概念 全角字符unicode编码从65281~65374 (十六进制 0xFF01 ~ 0xFF5E)半角字符unicode编码 ...
- 全角半角符号引发的Entity Framework奇遇记
SQL Server的SQL查询不区分大小写,而LINQ查询区分大小写,所以在写LINQ代码时需要注意的是——如果这段LINQ代码将会被Entity Framework解析为SQL语句(LINQ to ...
- C#全角半角转换输出解决方法
Microsoft.VisualBasic 命名空间 Strings 模块 StrConv 函数就具有大写/小写.全角/半角.中文简体/繁体等转换功能,字符串转换应该说是VB.NET的强项,是这样的: ...
随机推荐
- 2 26requests.py
""" requests """ # import requests # reponse = requests.get("http ...
- VMware下Linux配置局域网和外网访问
我想尝试的是利用本机的ip+port来访问虚拟机上的web服务器,因为这样的话,我就能够将我的web服务器部署成为一个能让外网访问的服务器了,首先说下我的环境: 主机:系统win7,ip地址172.1 ...
- 利用nat.123实现SVN外网访问
背景: 在高效平台的合作中,我们用到了很多团队合作开发的工具,比如SVN.禅道.Confluence等等.有了这些工具,我们可以很好的进行团队合作交流.但同样有所限制,这些工具都是发布在局域网中,只能 ...
- 逆向映射是干嘛的anon_vma, vma, anon_vma_chain
逆向映射是为了从page得到进程信息,里面有三个比较重要的结构体: mm_area_struct, anon_vma_chain, anon_vma 想象一种复杂的场景 所以其实一个进程对应着很多an ...
- Web 安全概念
Web 安全概念 Web 应用中存在很多安全风险,这些风险会被黑客利用,轻则篡改网页内容,重则窃取网站内部数据,更为严重的则是在网页中植入恶意代码,使得用户受到侵害.常见的安全漏洞如下: XSS 攻击 ...
- spring security注解(1)
Chapter 15. 基于表达式的权限控制 Spring Security 3.0介绍了使用Spring EL表达式的能力,作为一种验证机制 添加简单的配置属性的使用和访问决策投票,就像以前一样. ...
- 【BZOJ 4057 Kingdoms】
Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 450 Solved: 187[Submit][Status][Discuss] Descriptio ...
- AirPlay、DLNA、Miracast三大无线技术介绍
小米盒子之AirPlay.DLNA.Miracast三大无线技术介绍 米官方称小米盒子的米联功能可以将小米手机或iPhone.iPad上的图片.音乐.视频等精彩内容投射到电视上,让你感受大屏的刺激.而 ...
- js判断中出现两个!!是什么意思?
在js中看源码时有时候出现两个!!,我起初以为是js的其他语法,其实!!就是两次取“非”的运算. 下面证明我的说法. alert(null);//false alert(!null);//true a ...
- Semaphore built from mutex in C++11
#include <mutex> #include <condition_variable> using namespace std; class semaphore{ pri ...