全角转半角
//全角字符从的unicode编码从65281~65374
// 半角字符从的unicode编码从 33~126
// * 差值65248
// 空格比较特殊,全角为 12288,半角为 32
public char FullCode2HalfCode(char c) {
//得到c的编码
byte[] bytes = System.Text.Encoding.Unicode.GetBytes(c.ToString());
int H = Convert.ToInt32(bytes[1]); int L = Convert.ToInt32(bytes[0]);
//得到unicode编码
int value = H * 256 + L;
//是全角
if (value >= 65281 && value <= 65374) { int halfvalue = value - 65248;
//65248是全半角间的差值。
byte halfL = Convert.ToByte(halfvalue);
bytes[0] = halfL; bytes[1] = 0; }
else if (value == 12288) {
int halfvalue = 32;
byte halfL = Convert.ToByte(halfvalue);
bytes[0] = halfL; bytes[1] = 0;
} else {
return c; }
//将bytes转换成字符
string ret = System.Text.Encoding.Unicode.GetString(bytes);
return Convert.ToChar(ret);
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步