中联区卫经验分享吧 关注:97贴子:1,095
  • 0回复贴,共1

【其他】C#中判断全角字符和全角转半角的方法

只看楼主收藏回复

【问题】在医疗接口三大目录下载时容易遇到包含全角字符的收费项目,应该如何把含这种字符的名称解析出来?
【分析】首先判断这部分数据是否含有全角字符,然后通过转化将其转为半角字符
【处理】1、判断:
public static bool IsQjChar(char c)
{
if (c == '\u3000') return true;
int i = (int)c - 65248;
if (i < 32) return false;
return IsBjChar((char)i);
}
2、转化
public static string Fun_全角转半角(string s)
{
if (s == null || s.Trim() == string.Empty) return s;
StringBuilder sb = new StringBuilder(s.Length);
for (int i = 0; i < s.Length; i++)
{
if (s[i] == '\u3000')
sb.Append('\u0020');
else if (IsQjChar(s[i]))
sb.Append((char)((int)s[i] - 65248));
else
sb.Append(s[i]);
}
return sb.ToString();
}


1楼2015-02-04 09:37回复