C#中半角字符与全角字符的互转
2009-09-11 16:35
429 查看
工作中,发现有的电话号码存放时,是以全角存放的,为了整理这些不规范的数据,通过朋友找到相关的方法,终于解决了此问题。
using System;
using System.Collections.Generic;
using System.Text;
namespace AllToHalf
{
public class AllToHalf
{
/// <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] > 32)
{
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);
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace AllToHalf
{
public class AllToHalf
{
/// <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] > 32)
{
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);
}
}
}
相关文章推荐
- c# 字符串中全角和半角字符互转
- C#中半角字符与全角字符的互转
- 全角字符与半角字符的相互转换(C#)
- C#中全角字符转换为半角
- C#中为什么两个函数对全角半角数字字符的处理方式不一样
- C#实现字符的全角,半角转换
- C#中全角字符转换为半角[转]
- 【转】全角字符与半角字符的相互转换(C#)
- C#中全角字符转换为半角
- c# 中文字符(全角、半角)通用处理
- c#中怎样实现字符全角半角转换
- java中字符进行全角半角转换示例代码
- C#中直接调用VB.NET的函数,兼论半角与全角、简繁体中文互相转化
- php全角字符转换为半角函数
- C#全角和半角转换
- 如何使用php将字符从全角转为半角
- 全角转半角,半角转全角,判断字符是否为全角
- C#全角半角相互转换函数
- C#全角半角转换函数代码分享
- 全角转半角,半角转全角,判断字符是否为全角